MCP Staffing - 顾问匹配服务
在MCP(模型上下文协议)解决方案中,根据技能和能力寻找可用的顾问。
🏗️ 建筑(Architektur 的中文翻译)
该解决方案由两个分别位于独立Docker容器中的微服务组成:
- "Konsulent-api" 可以翻译为“顾问API”或“咨询接口”。这里,“Konsulent”是德语中“顾问”或“咨询师”的意思,而“api”则是“应用程序编程接口”的缩写。因此,整个词组可以理解为提供顾问或咨询服务的API接口 (端口8000):提供顾问数据的数据源
- LLM工具API (端口8001):提供确定性和AI驱动摘要的过滤服务
建筑决策
为什么有两个独立的服务?
- 关注点分离:数据源与业务逻辑是分离的
- 可扩展性:能够独立扩展服务
- 可维护性:更易于更新/更换系统部件
🚀 开始吧
前提条件/假设
- 已安装Docker和Docker Compose
- (可选)OpenRouter API密钥,用于AI功能
设置
- 克隆仓库
git clone
cd mcp-staffing- 配置API密钥(可选)
如果你想使用AI功能,请直接在(此处)添加你的OpenRouter API密钥。 docker-compose.yml:
# I docker-compose.yml under llm-verktoy-api -> environment:
- OPENROUTER_API_KEY=sk-or-v1-din-nøkkel-her品牌: 对于生产环境,API密钥应通过密钥管理进行处理。此解决方案仅用于测试/演示。
- 启动服务
docker compose up --build服务现在运行于:
- 顾问APIhttp://localhost:8000 翻译为中文是:“本地主机上的8000端口”。不过,在实际语境中,我们通常不会直接这样翻译网址,而是根据具体使用场景来解释或描述它。例如,可以说“访问本地开发服务器的URL是http://localhost:8000”
- 文档说明:http://localhost:8000/docs
- LLM工具APIhttp://localhost:8001 翻译为中文是:“本地主机的8001端口”。不过,通常我们不会直接翻译网址,而是直接使用或解释其含义。在这个上下文中,它指的是运行在本地计算机上的某个服务或应用,监听8001端口
- 文档:http://localhost:8001/docs - 健康检查:http://localhost:8001/health
📡 API端点
顾问API(端口8000)
GET /konsulenter
返回所有具有特定技能和工作负载的顾问。
响应示例:
[
{
"id": 1,
"navn": "Anna K.",
"ferdigheter": ["python", "docker", "fastapi"],
"belastning_prosent": 40
}
]LLM工具API(端口8001)
GET /tilgjengelige-konsulenter/sammendrag
返回可用顾问的摘要。
查询参数:
min_tilgjengelighet_prosent(必填):最低可用性 0-100pakrevd_ferdighet(必填): 必需的技能(不区分大小写)
- 品牌: 布鲁克 pakrevd 相反,取而代之的是 påkrevd PGA. Docker/URL 兼容性
use_ai(可选):true对于AI摘要(或“人工智能摘要”)false对于决定论的(标准)
响应示例:
{
"sammendrag": "Fant 2 konsulenter med minst 50% tilgjengelighet og ferdigheten 'python'. Anna K. har 60% tilgjengelighet. Leo T. har 80% tilgjengelighet.",
"metode": "deterministisk",
"antall_funnet": 2
}🧪 测试场景
确定性模式(标准)
Python开发者(多处匹配):
curl "http://localhost:8001/tilgjengelige-konsulenter/sammendrag?min_tilgjengelighet_prosent=40&pakrevd_ferdighet=python"高要求(匹配结果少):
curl "http://localhost:8001/tilgjengelige-konsulenter/sammendrag?min_tilgjengelighet_prosent=90&pakrevd_ferdighet=python"罕见技能(特殊情况):
curl "http://localhost:8001/tilgjengelige-konsulenter/sammendrag?min_tilgjengelighet_prosent=20&pakrevd_ferdighet=rust"AI驱动模式
添加 &use_ai=true 到上述URL之一:
curl "http://localhost:8001/tilgjengelige-konsulenter/sammendrag?min_tilgjengelighet_prosent=40&pakrevd_ferdighet=python&use_ai=true"品牌: AI模式要求 OPENROUTER_API_KEY 被配置在 docker-compose.yml。
⚙️ 配置
环境变量(llm工具API)
| 变量 | 描述 | 默认值 |
|---|---|---|
KONSULENT_API_BASE | 到顾问API的基准URL | http://konsulent-api:8000 |
OPENROUTER_API_KEY | OpenRouter的API密钥 | "" (汤姆) |
USE_OPENROUTER | 总是使用AI(真/假) | false |
🛑 停止服务
# Trykk Ctrl + C i terminalen, eller:
docker compose down
# For å fjerne volumes også:
docker compose down -v