FastAgent
这是一个基于FastAPI的轻量级、快速、高并发的 Agent 框架。与使用 LangChain 或 AutoGen 不同,它将一组API视为工具,直接从这些API中提取参数,然后调用相应的API接口。
特点 😎
- 默认情况下,标签中包含"tool"的接口被视为可调用工具。
- 如果工具无法调用,则返回最终答案。最终答案可能是要求用户提供更多信息,或者基于大模型自身的能力直接回答用户的问题。
- ReAct,进行计划和推理。
- 使用LightRAG,比GraphRAG更快。
- 基于FastAPI的异步高并发。
快速开始 🚀
- 下载仓库
git clone https://github.com/StudyExchange/fastagent.git
- 安装依赖
cd fastagent
pip install -r requirements.txt
- 设置环境变量
export OPENAI_API_KEY="sk-xxx"
export OPENAI_BASE_URL="https://xxx/v1"
export OPENAI_MODEL_NAME="gpt-4o-mini"
或者在Windows上
set OPENAI_API_KEY="sk-xxx"
set OPENAI_BASE_URL="https://xxx/v1"
set OPENAI_MODEL_NAME="gpt-4o-mini"
或者使用pydantic_settings的.env
文件
OPENAI_API_KEY="sk-xxx"
OPENAI_BASE_URL="https://xxx/v1"
OPENAI_MODEL_NAME="gpt-4o-mini"
或者在VSCode的launch.json
中设置环境变量
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: 当前文件",
"type": "debugpy",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"justMyCode": true,
"env": {
"PYTHONPATH": "${workspaceFolder}",
"OPENAI_API_KEY": "sk-xxx",
"OPENAI_BASE_URL": "https://xxx/v1",
"OPENAI_MODEL_NAME": "gpt-4o-mini",
},
}
]
}
- 启动
python main.py
或者
uvicorn main:app --host 0.0.0.0 --port 8000
使用方法
- 在本地浏览器中打开
http://127.0.0.1:8000/frontend
。
- 更新LightRAG知识库中的文档
python -m services.rag_service
Swagger文档
在本地浏览器中打开 http://127.0.0.1:8000/docs
。
Docker
- create
.env
file at project folder, or setup environments when docker container start
OPENAI_API_KEY="sk-xxx"
OPENAI_BASE_URL="https://xxx/v1"
OPENAI_MODEL_NAME="gpt-4o-mini"
- build
docker build -t fastagent .
- docker run
docker run -it -p 8000:8000 fastagent
or
docker run -it -p 8000:8000 \
-e OPENAI_API_KEY="sk-xxx" \
-e OPENAI_BASE_URL="https://xxx/v1" \
-e OPENAI_MODEL_NAME="gpt-4o-mini" \
fastagent
支持的LLM
- GPT
- Qwen
- GLM
- 其他符合标准OpenAI API的LLM
开发 🛠️
- 克隆仓库
- 在VSCode中打开项目文件夹
- 创建conda环境并选择环境
pip install -r requirements.txt
- 开发新的API作为工具
- 修改提示词以进行自定义高级开发
测试
- 运行pytest
pytest --cov --cov-report=term --cov-report=html
- 打开
htmlcov/index.html
文件以查看代码覆盖率
贡献
欢迎贡献!请随时提交Pull Request。
许可证
本项目采用MIT许可证。