使用说明
项目简介
Jiki是一个用于构建LLM应用的Python框架,它基于多能力协议(MCP),旨在简化LLM与外部工具和资源的集成。Jiki利用FastMCP库进行稳健的工具服务器通信,并集成了LiteLLM以支持多种LLM提供商,如OpenAI、Anthropic、Gemini等。Jiki易于上手,同时为复杂应用提供深度定制能力。
主要功能点
- 多LLM后端支持: 通过LiteLLM支持广泛的LLM供应商,例如OpenAI、Anthropic、Google Gemini等。
- 灵活的工具集成:
- 自动工具发现: 可以自动从MCP服务器发现和注册工具。
- 手动工具配置: 支持通过JSON文件或Python字典手动配置工具。
- 多样的MCP传输协议: 支持stdio和SSE等多种MCP传输协议,方便连接不同类型的MCP服务器。
- 详细的交互数据: 提供详细的响应对象,包含最终结果、结构化的工具调用数据和原始交互追踪信息,方便调试和分析。
- Tracing & Logging: 内置Tracing功能,可以记录和导出交互过程,方便监控和调试。
- LLM采样配置: 允许用户自定义LLM的采样参数,如temperature、top_p、max_tokens等。
- 状态管理: 支持通过实现 'IConversationRootManager' 接口来管理对话状态,实现会话快照和恢复。
- 直接MCP客户端访问: 提供底层的MCP客户端访问能力,允许用户直接与MCP服务器交互,例如列出资源、执行RPC调用等。
安装步骤
-
安装Jiki库: 推荐使用 'uv' 包管理器进行安装,执行以下命令:
uv pip install jiki -
配置LLM API密钥: 根据你使用的LLM模型,设置相应的API密钥环境变量。例如,如果使用Anthropic模型,需要设置 'ANTHROPIC_API_KEY' 环境变量:
export ANTHROPIC_API_KEY=<your_api_key>或者使用OpenAI模型:
export OPENAI_API_KEY=<your_api_key>
服务器配置
Jiki框架本身 不是 MCP服务器的实现,而是一个 MCP客户端框架。它需要连接到一个独立的MCP服务器才能工作。仓库中 'servers' 目录下提供的 'calculator_server.py' 和 'custom_tools_server.py' 是 FastMCP 框架实现的 示例MCP服务器,用于演示Jiki的工具调用功能。
以下是使用 'servers/calculator_server.py' 作为MCP服务器的配置信息示例 (JSON 格式,用于MCP客户端配置,例如Jiki框架本身或其他MCP客户端):
{ "server_name": "CalculatorServer", "command": "python", "args": [ "-u", // 使用 -u 参数确保stdio不被缓冲,对于实时通信很重要 "servers/calculator_server.py" // MCP服务器脚本的路径,相对于客户端的运行目录 ], "transport": "stdio", // 使用stdio传输协议,与脚本直接通过标准输入输出通信 "description": "示例计算器MCP服务器,提供加减乘除工具。", "author": "Teilo Millet", "version": "0.1.0" }
请注意: 以上JSON配置信息是 MCP客户端 用来连接和启动 'servers/calculator_server.py' 这个 MCP服务器 的配置描述,而不是Jiki框架自身的服务器配置。 Jiki框架本身作为一个客户端,并不需要像MCP服务器那样被配置启动命令和参数。
基本使用方法
-
运行示例MCP服务器: 在仓库根目录下,运行 'servers/calculator_server.py' 脚本,启动示例MCP服务器。你可以通过Jiki提供的CLI命令来启动,例如:
python -m jiki.cli run --auto-discover --mcp-script-path servers/calculator_server.py或者直接运行服务器脚本:
python servers/calculator_server.py -
使用Jiki CLI进行交互: 启动Jiki的交互式CLI界面,与LLM进行对话,并体验工具调用功能。
python -m jiki.cli run --auto-discover --mcp-script-path servers/calculator_server.py在CLI界面中,你可以输入自然语言问题,例如 "What is 2 + 2?",Jiki框架会自动调用计算器MCP服务器提供的工具来解答问题。
-
在Python代码中使用Jiki: 你可以将Jiki框架集成到你的Python应用中,以编程方式使用LLM和工具调用功能。以下是一个简单的示例:
from jiki import Jiki orchestrator = Jiki( auto_discover_tools=True, mcp_mode="stdio", mcp_script_path="servers/calculator_server.py" ) result = orchestrator.process("What is 2 + 2?") print(result)
通过以上步骤,你可以快速上手Jiki框架,体验其强大的LLM编排和工具调用能力。
信息
分类
开发者工具