项目简介

Exam-Bot 是一个原型 AI 代理,旨在利用 Model Context Protocol (MCP) 协助学生准备 Linux Foundation (LF) 认证考试。它通过提供互动练习题和智能问答响应,作为一个智能的学习伴侣。

主要功能点

  • 随机习题练习: 根据用户指定的难度和主题(可选),从数据集中随机抽取问答对作为练习题。
  • 语义搜索问答: 当用户提出特定问题时,通过语义搜索在问答数据库中查找最相关的答案。
  • 引导式对话学习: 结合 LLM 的能力,基于习题或搜索结果与用户进行对话,提供更深入的理解和帮助。
  • 会话管理: 支持用户和会话的创建、加载和管理,保存聊天历史。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/ItshMoh/ExamBOT.git
    cd ExamBOT
  2. 安装 Python 依赖:
    pip install -r requirements.txt
  3. 运行 Qdrant 向量数据库: 需要 Docker 环境。
    docker run -p 6333:6333 qdrant/qdrant
  4. 设置环境变量: 在项目根目录下创建 '.env' 文件,并添加 MongoDB 连接 URI。OpenAI API Key 可留空,因为项目配置为使用本地 Llama3 API ('http://127.0.0.1:8080/v1')。
    MONGODB_URI="你的MongoDB连接字符串"
    # OPENAI_API_KEY="" # 可选,如果使用本地LLM则无需填写
    同时需要设置 MongoDB 数据库名称 ('MONGODB_DB') 和集合名称 ('MONGODB_COLLECTION'),参考 'database/monogodb.py' 中的默认值 'ExamBot'。
  5. 设置 MongoDB 实例: 运行一个 MongoDB 实例,并创建相应的数据库和集合。
  6. 准备数据: 运行向量存储初始化脚本('vectorstore/qdrant.py'),将 'dataset/kubernetes_qa.csv' 中的问答数据导入 Qdrant。注意需要先运行 'dataset/url_data_fit.py' 将 '.txt' 格式数据转换为 '.csv',或者直接使用 'kubernetes_qa.csv' 文件(已在仓库中)。
  7. 运行 Llama3 API 服务器: 按照 README 中的说明,下载 Llama3 GGUF 模型,并使用 'wasmedge' 运行 Llama3 API 服务器(需要先安装 WasmEdge 和 WasmEdge-NN 插件)。确保其在 'http://127.0.0.1:8080/v1' 可访问。
  8. 运行应用程序: 启动主应用程序。
    python app.py
    应用程序将自动启动作为子进程的 MCP 服务器 ('main.py')。

服务器配置(供MCP客户端使用)

本 MCP 服务器通过标准输入/输出 (stdio) 协议与客户端通信。一个标准的 MCP 客户端(例如 'llm_api.py' 中实现的客户端)需要配置以下信息来连接和启动此服务器:

  • 服务器名称 ('name'): 'Exam-Bot' (在 'main.py' 中定义)
  • 启动命令 ('command'): 'python3' (用于执行服务器脚本)
  • 启动参数 ('args'): '["main.py"]' (指定要执行的服务器脚本)
  • 通信协议 ('transport'): 'stdio' (通过标准输入输出进行通信)

这些信息通常会配置在 MCP 客户端的启动配置文件中,以 JSON 格式表示。

基本使用方法

  1. 访问前端: 在浏览器中打开 'http://localhost:8000' (如果使用默认端口)。
  2. 输入姓名: 输入您的姓名以创建或加载用户会话。
  3. 开始对话: 创建新会话或加载现有会话,然后在聊天界面输入您的问题或练习请求。例如,您可以问“什么是 Kubernetes Pod?” 或说“给我来一个关于网络的高级练习题”。
  4. 获取响应: AI 助手将调用相应的工具函数获取信息,并通过 LLM 处理后给出响应。

关键词

Linux Foundation认证, 备考助手, 智能问答, 习题练习, AI教育

信息

分类

AI与计算