DARP的MCP搜索引擎。
[![导入:reorder-python-imports][imports-image]][imports-url]
[![Pydantic v2][pydantic-image]][pydantic-url]
[![pre-commit][pre-commit-image]][pre-commit-url]
[![MIT许可证][license-image]][license-url]
DARPEngine存储在线托管的MCP服务器的元数据,并提供智能搜索功能。
.well-known/mcp.jsonexport OPENAI_API_KEY=sk-...
docker network create highkey_network
docker compose build
docker compose -f docker-compose.yaml -f docker-compose-debug.yaml up --build --wait
你可以使用提供的mcp工具将DARPEngine连接到MCP客户端(例如Claude Desktop或Cursor)。只需选择SSE模式并指定http://localhost:4689/sse作为端点。
另一种方法是使用CLI。大多数脚本仅使用标准Python库,但路由工具需要mcp包,你可以这样安装脚本依赖:
conda create -n darp 'python>=3.10'
conda activate darp
pip install -r mcp_server/requirements.txt
安装完成后,我们可以使用脚本。
首先,我们需要向引擎添加一些MCP服务器,例如:
$ python scripts/darp-add.py --url http://memelabs.ai:3006/sse --name code_analysis --description "分析gitlab仓库的质量、主题和包使用情况"
然后我们可以进行请求:
$ python scripts/darp-search.py "分析 https://github.com/BenderV/autochat"
找到1个服务器:
code_analysis
你可以通过路由工具获得更有用的结果:
$ python scripts/darp-router.py "分析 https://github.com/BenderV/autochat"
assistant: [tool_calls]
[tool] ...
[tool] ...
[tool] ...
assistant:
### 代码质量
AutoChat仓库中的代码在**可读性**、**可维护性**以及遵循最佳实践方面展示了良好的质量水平:
- **可读性**:一致的命名约定明显存在,符合Python的PEP 8样式指南。描述性的函数和变量名称增强了对代码目的的理解。
- **可维护性**:代码结构允许轻松更新和修改,通过类和处理不同功能的方法观察到明确的关注点分离。
- **最佳实践**:广泛使用的异常处理、类型注解和文档字符串反映了Python开发的最佳实践。一些TODO注释表明了改进的空间,这表明需要进一步关注。
### 代码结构
代码组织成多个文件和模块,每个都有特定的目的:
- **模块化设计**:各种类(如`Autochat`、`Image`、`Message`)表明了一个良好的面向对象设计,促进了关注点分离,使得代码更容易导航。
- **逻辑组织**:文件基于功能逻辑分离。例如,`chat.py`专注于聊天相关的逻辑,而`model.py`处理消息和图像处理。`utils.py`中的实用函数增强了复用性。
- **测试**:测试文件的存在(如`tests/test_utils.py`)显示了对测试的承诺,这对代码可靠性至关重要。使用`unittest`表示了一种结构化的测试单个组件的方法。
### 主要功能
代码似乎是**AutoChat包**的一部分,提供了构建对话代理的框架。主要功能包括:
- **聊天管理**:`Autochat`类充当管理对话的主要接口,处理消息历史记录、上下文和交互限制。
- **消息处理**:像`Message`和`MessagePart`这样的类使结构化消息创建和处理成为可能,支持不同类型的消息,包括文本和图像。
- **功能扩展**:像`add_tool`和`add_function`这样的方法允许动态添加工具和功能,促进聊天体验的定制化。
- **提供商集成**:不同的API提供商集成(如OpenAI、Anthropic)封装在各自的类中,允许后端通信的灵活性。
- **实用功能**:实用函数提供了额外的能力,如CSV格式化和函数解析,支持主要的聊天操作。
总体而言,代码库组织良好,展示了开发对话AI框架的深思熟虑的方法。还有进一步精炼和增强的空间,特别是在文档和变量名清晰度方面。
### 库的使用
项目使用了**AI库**,由其与对话代理相关联的功能和与AI服务提供商的集成所指示。这支持其高效管理与AI模型互动的能力。
### 概述
AutoChat项目是一个旨在与各种AI模型进行交流的聊天系统,主要通过`Autochat`类来管理对话和支持复杂的消息类型,包括文本和图像。由于与外部API的集成及其通过可扩展方法(如`add_tool`和`add_function`)处理多样互动的能力,代码具有适度的复杂性。代码质量值得称赞,具有良好的结构化模块化设计,促进了可读性和可维护性,尽管某些区域需要进一步的文档和细化,如澄清变量名和增强注释。将模型、实用程序和测试组织成单独的文件有助于开发,但实用函数可以通过更好的分类来提高清晰度。
当然,结果的有用性取决于你连接到引擎的MCP服务器。
请随时通过讨论区联系我们。
关注我们在X上的动态:https://x.com/DARP_AI
DARPEngine代码库采用MIT许可证。
<br>://github.com/psf/black [imports-image]: https://img.shields.io/badge/%20imports-reorder_python_imports-%231674b1?style=flat&labelColor=ef8336 [imports-url]: https://github.com/asottile/reorder-python-imports/ [pydantic-image]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/pydantic/pydantic/main/docs/badge/v2.json [pydantic-url]: https://pydantic.dev [pre-commit-image]: https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white [pre-commit-url]: https://github.com/pre-commit/pre-commit [license-image]: https://img.shields.io/github/license/DARPAI/darp_engine [license-url]: https://opensource.org/licenses/MIT