图书馆助理
对话式人工智能助手,帮助用户使用开放图书馆API发现书籍。使用LangChain、Gradio和模型上下文协议(MCP)构建。
特性
- 图书搜索:按标题、作者或关键字搜索书籍
- 作者搜索:寻找作者并探索他们的作品
- 主题浏览:按类型/主题浏览书籍(奇幻、浪漫、神秘等)
- 书籍推荐:根据兴趣获得个性化书籍推荐
- 会话界面:GPT-4o-mini支持的自然语言聊天界面
使用的技术
| 技术 | 目的 |
|---|---|
| python | 程序设计语言 |
| 格拉迪奥 | 聊天UI框架 |
| LangChain | AI代理框架 |
| MCP(模型上下文协议) | 工具通信协议 |
| FastMCP | MCP服务器实现 |
| 开放路由 | LLM API提供程序 |
| 开放式库API | 图书数据源 |
| HTTPX | API请求的HTTP客户端 |
先决条件
- Python 3.10或更高版本
- 一 开放路由 API密钥
安装
- 克隆仓库:
git clone https://github.com/fernandovbs/library-assistant.git
cd library-assistant- 创建虚拟环境 (推荐):
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- 安装依赖项:
pip install -r requirements.txt- 配置环境变量:
复制示例环境文件并添加您的API密钥:
cp example.env .env编辑 .env 并设置您的OpenRouter API密钥:
OPENROUTER_API_KEY=your_api_key_here
OPENROUTER_BASE_URL=https://openrouter.ai/api/v1运行应用程序
该应用程序由两个组件组成,需要在单独的终端中运行:
1.启动MCP服务器
在第一个终端中:
python mcp_server.py服务器将在以下时间启动 http://localhost:8000 SSE端点位于 http://localhost:8000/sse.
2.启动聊天应用程序
在第二个终端中:
python chat_app_mcp.pyGradio界面将在浏览器中打开(通常在 http://127.0.0.1:7860).
用法
两台服务器都运行后,您可以通过聊天界面与助手进行交互。尝试以下问题:
- “给我推荐一本好的科幻小说”
- “搜索艾萨克·阿西莫夫的书”
- “给我看看流行的悬疑小说”
- “查找有关人工智能的书籍”
- “什么是顶级奇幻书籍?”
可用工具
MCP服务器公开了以下工具:
| 工具 | 说明 |
|---|---|
search_books | 按标题、作者或关键字搜索书籍 |
search_authors | 搜索作者并查看他们的作品 |
browse_subject | 按主题/类型浏览书籍 |
get_author_works | 使用特定作者的Open Library ID获取其所有作品 |
recommend_books | 根据兴趣获取书籍推荐 |
项目结构
library-assistant/
├── chat_app_mcp.py # Gradio chat application with LangChain agent
├── mcp_server.py # MCP server with Open Library tools
├── requirements.txt # Python dependencies
├── example.env # Example environment variables
├── .env # Your environment variables (not in git)
└── README.md # This file配置
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
OPENROUTER_API_KEY | 您的OpenRouter API密钥 | 必需 |
OPENROUTER_BASE_URL | OpenRouter API基础URL | https://openrouter.ai/api/v1 |
MCP_SERVER_URL | MCP服务器SSE端点 | http://localhost:8000/sse |
许可证
该项目使用 开放式库API 对于图书数据。
