LLM Chat

一个基于 FastAPI + LangChain 的 AI 聊天应用,支持多智能体(Agent)管理和多轮对话,消息持久化到 SQLite 数据库。

screenshot-20260821-130937_compressed.jpeg

功能特性

  • 创建和管理多个 AI 智能体,每个智能体可配置独立的系统提示词、模型和温度参数
  • 多轮对话,历史记录自动加载
  • 流式输出(Streaming)
  • Markdown 格式渲染(标题、代码块、列表、引用、表格等)
  • 对话历史持久化(SQLite)
  • 响应式 Web 界面

技术栈

  • 后端:FastAPI、LangChain、SQLAlchemy
  • 前端:原生 HTML / CSS / JavaScript
  • 数据库:SQLite
  • Python:3.13+

安装

创建虚拟环境

# 使用 uv(推荐)
uv venv && source .venv/bin/activate
uv pip install -r requirements.txt

# 或使用 Python 内置 venv
python3.13 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

使用 uv sync(如项目已配置 pyproject.toml)

uv sync

配置

复制 .env 文件并填写你的 API 密钥:

cp .env.example .env   # 如有模板

.env 配置项:

变量说明默认值
DATABASE_URL数据库连接字符串sqlite:///./llm_chat.db
`OPENAIAPIKEY`LLM API 密钥
`OPENAIBASEURL`API 端点地址https://api.openai.com/v1
OPENAI_MODEL默认模型gpt-4o-mini

启动

# 激活虚拟环境(如果尚未激活)
source .venv/bin/activate

# 使用 uv
uv run uvicorn main:app --reload --host 0.0.0.0 --port 8000

# 或使用 python
python -m uvicorn main:app --reload --host 0.0.0.0 --port 8000

然后用浏览器打开 http://localhost:8000

目录结构

.
├── main.py          # FastAPI 应用入口
├── database.py      # 数据库连接与初始化
├── models.py        # SQLAlchemy 数据模型
├── schemas.py       # Pydantic 请求/响应模型
├── requirements.txt # Python 依赖
├── routers/
│   ├── agents.py    # 智能体 CRUD 接口
│   ├── chats.py     # 对话 CRUD 接口
│   └── llm.py       # 聊天消息接口(含流式)
└── static/
    ├── index.html   # 前端页面
    ├── app.js       # 前端逻辑
    └── style.css    # 样式

API 接口

方法路径说明
GET/api/agents获取所有智能体
POST/api/agents创建智能体
PUT/api/agents/{id}更新智能体
DELETE/api/agents/{id}删除智能体
GET/api/chats获取所有对话
POST/api/chats创建对话
GET/api/chats/{id}获取对话详情(含消息)
PATCH/api/chats/{id}更新对话(如绑定智能体)
PUT/api/chats/{id}/title更新对话标题
DELETE/api/chats/{id}删除对话
GET/api/chats/agent/{agent_id}获取智能体最近一条对话
POST/api/chat发送消息(非流式)
POST/api/chat/stream发送消息(流式)
分类 AI插件
类型 Python
版本 v1.0.0
积分 5积分
浏览次数 23
下载次数 0
文件大小 --
发布时间 2026-08-21