OpenLigaDbLlm
该项目展示了a的集成。NET ChatClient,带有MCP(模型上下文协议)服务器,该服务器提供与OpenLiaDb API交互的工具。该项目包括一个ChatClient、一个MCP服务器,并使用Docker Compose来设置监控堆栈(OpenTetry Collector、Loki和Grafana)。
项目结构
src/ChatWithTools:包含。NET聊天客户端应用程序。src/McpServer:包含。NET MCP服务器应用程序与OpenLigaDb工具。docker-compose.yml:定义使用Docker运行OpenTetry收集器、Loki和Grafana的服务。otel-collector-config.yaml:OpenTetry收集器的配置。
先决条件
- 已安装Docker和Docker Compose。
- .NET SDK(运行C#项目所需)。
入门指南
该项目涉及使用Docker Compose运行C#应用程序和监控堆栈。
- 克隆存储库:
git clone https://github.com/FelixDamrau/OpenLigaDbLlm.git
cd OpenLigaDbLlm- 使用Docker Compose启动监控堆栈:
docker-compose up -d此命令将以分离模式启动OpenTetry收集器、Loki和Grafana容器。
- 跑吧。NET项目:
在运行应用程序之前,请确保设置了以下环境变量:
- HELICONE_API_KEY:您的Helicone API钥匙。这用于通过Helicone监控和记录API调用。 - OPENROUTER_API_KEY:您的OpenRouter API密钥。这用于使用OpenRouter API进行身份验证。
导航到相应的项目目录,并使用运行应用程序。NET-CLI:
cd src/McpServer
dotnet run
# In a new terminal:
cd src/ChatWithTools
dotnet run在启动ChatClient之前,请确保McpServer正在运行。
MCP服务器
这 McpServer 该项目实现了一个MCP服务器,它公开了和OpenLiaDb API交互的工具。MCP兼容客户端(如附带的ChatClient)可以使用这些工具从OpenLigaDb检索数据。
MCP服务器工具
MCP服务器公开了以下工具:
getAvailableLeagues:获取所有可用联赛getFilteredLeagues:获取与给定筛选器匹配的所有可用联赛getAllTeams:获取给定赛季中给定联赛的所有球队echo:呼应给定的信息。此工具主要用于调试目的。
聊天客户端
这 ChatWithTools 项目是一个。NET控制台应用程序,充当MCP服务器的客户端。它演示了如何连接到MCP服务器,发现可用的工具,并使用它们执行操作(在本例中,与OpenLigaDb API交互)。
确保您已设置 HELICONE_API_KEY 和 OPENROUTER_API_KEY 运行ChatClient之前的环境变量。
要通过ChatClient使用MCP工具,您将与正在运行的 ChatWithTools 控制台应用程序。具体的命令或接口将取决于 ChatWithTools 项目。有关如何与ChatClient交互和使用MCP工具的详细信息,请参阅ChatClient的输出或文档(如果有的话)。
监测(开放遥测)
该项目包括使用OpenTetry为监控堆栈设置Docker Compose:
- OpenTetry收集器: 从应用程序收集遥测数据。
- 位置 : 日志聚合系统。
- 格拉法娜: 数据可视化和仪表板工具。
您可以访问Grafana http://localhost:3000 启动Docker容器后。
监控(Helicone)
该项目还支持通过Helicone监控和记录API调用。要启用此功能,请确保您已设置 HELICONE_API_KEY 环境变量。
链接
- OpenLigaDB网站: https://www.openligadb.de/
- OpenLigaDB示例GitHub:
