图像研究助理
这是一个图像研究助理,专注于使用模块化服务帮助进行图像相关信息的检索和丰富。该存储库包含一个轻量级的应用程序入口点、客户端/代理脚手架以及用于视觉和维基百科查找的服务模块。
目标
- 使用MCP服务为图像研究任务提供紧凑、可扩展的架构。
- 保持服务模块化,以便贡献者可以添加新的数据源或模型。
- 为本地运行和测试提供简单的开发人员人体工程学。
目录
src/app/--主要应用程序包和入口点src/app/clients/--客户端代理和MCP客户端代码src/app/servers/vision/--与视觉相关的服务器实用程序和服务器src/app/servers/wikipedia/--维基百科查找服务器和助手
先决条件
- 具有POSIX类shell的macOS/Linux/Windows(示例使用
zsh/bash) - Python 3.10或更新版本
- Git
- (可选)
poetry如果你更喜欢通过Poetry管理项目。尽管uv是此项目的首选包管理器。
推荐设置
- 创建并激活虚拟环境(macOS/Linux):
python3 -m venv .venv
source .venv/bin/activate如果使用 uv,只需运行 uv venv 安装后激活环境。
- 安装依赖项。首选项目方法:
- 使用Makefile帮助程序(推荐):
make install- 或使用
uv(此项目的首选包管理器)从安装pyproject.toml:
uv install -r pyproject.toml如果你愿意,你仍然可以在迭代本地代码时执行可编辑的pip安装:
pip install -e .注:没有 requirements.txt 在这个存储库中;使用 pyproject.toml 随着 uv 或 Makefile 帮手。
运行项目
- 直接运行主应用程序(快速):
python src/app/main.py- 或者在可编辑安装后作为模块运行:
make run项目考虑因素
- 存储库有意采用模块化:添加新
servers/或clients/不接触核心逻辑的组件。 - 将第三方模型或API密钥排除在回购之外-使用环境变量或凭据的机密存储。
- 以轻量级依赖关系为目标,使项目易于为贡献者设置。
- 如果添加长时间运行的服务,最好在流程管理器(systemd、supervisor)后面或在生产容器中运行它们。
测试
- 默认情况下没有捆绑测试。如果您添加测试,请选择
pytest并将测试置于tests/. - 示例试运行(添加后
pytest到deps):
pytest -q贡献
- 分叉存储库并创建功能分支:
git checkout -b feat/your-feature - 保持承诺小而专注,信息清晰。
- 在打开PR之前,运行过梁和您添加的任何测试。
- 打开一个Pull请求
main,添加描述性标题和更改摘要。 - 对于较大的更改,请先打开一个问题来讨论设计和方法。
代码风格
- 遵循惯用的Python(PEP8)。可选择添加
black/ruff或与项目类似的工具,以保持一致性。Ruff在这里使用,可以使用make lint并通过以下方式进行类型检查make pyrefly.
联系人/维护人员
- 主要回购所有者是
BrianLusina(GitHub:BrianLusina).打开问题或PR以获取问题、修复或功能请求。
