图书搜索助手

一个基于Open Library API的对话式AI助手,帮助用户通过自然语言搜索和发现书籍。

  • by fernandovbs
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 fernandovbs/library-assistant

使用说明

图书馆助理

对话式人工智能助手,帮助用户使用开放图书馆API发现书籍。使用LangChain、Gradio和模型上下文协议(MCP)构建。

特性

  • 图书搜索:按标题、作者或关键字搜索书籍
  • 作者搜索:寻找作者并探索他们的作品
  • 主题浏览:按类型/主题浏览书籍(奇幻、浪漫、神秘等)
  • 书籍推荐:根据兴趣获得个性化书籍推荐
  • 会话界面:GPT-4o-mini支持的自然语言聊天界面

使用的技术

技术 目的
python 程序设计语言
格拉迪奥 聊天UI框架
LangChain AI代理框架
MCP(模型上下文协议) 工具通信协议
FastMCP MCP服务器实现
开放路由 LLM API提供程序
开放式库API 图书数据源
HTTPX API请求的HTTP客户端

先决条件

安装

  1. 克隆仓库:

    git clone https://github.com/fernandovbs/library-assistant.git
    cd library-assistant
    
  2. 创建虚拟环境 (推荐):

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    
  3. 安装依赖项:

    pip install -r requirements.txt
    
  4. 配置环境变量:

    复制示例环境文件并添加您的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.py

Gradio界面将在浏览器中打开(通常在 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 对于图书数据。

致谢