#最小值cpdemo🚀
______________________________________________________________________
🏗️ 项目结构
- McpPromptServer:\
一个暴露提示文件的最小MCP服务器(*.prompt.md 以及更多)通过使用MCP协议的HTTP/SSE。
- PromptLoader集成: 高级提示管理、基于文件夹的组织(根)、提示链接、版本控制和过滤。 - 资源和根支持: 提示按根(顶级文件夹)分组,并作为MCP资源公开,以便于发现和过滤。 - 列出可用的提示和资源。 - 使用流畅的API根据请求提供提示内容。
- McpPromptClient:\
连接到MCP服务器、列出可用提示/资源、获取提示内容并使用这些提示与LLM端点(例如Azure OpenAI)交互的控制台客户端。
- 支持根/资源选择和提示过滤。
- PromptLoader:\
用于加载、组织和编写提示的可重用库。
- 流利的API: 轻松从文件夹/文件加载提示,组合/链接提示,并以可读的方式应用配置:
var ctx = await PromptContext
.FromFolder()
.WithConfig(config)
.LoadAsync();
string combined = ctx.Get("Sales").CombineWithRoot().AsString();- 可通过以下方式配置
appsettings.json - 支持即时版本控制(使用Git版本文件)、链接和多格式(Markdown、YAML、Jinja等)。
______________________________________________________________________
📦 关键技术
______________________________________________________________________
📝 用法
1.启动MCP提示服务器
.net运行--项目McpPromptServer
提示从 Prompts/ 目录(或中配置的 appsettings.json).
2.设置您的LLM API密钥
设置 GH_TOKEN 您的LLM提供商API密钥的环境变量(例如Azure OpenAI):
- Windows(cmd): 设置GH_TOKEN=your_api_key
- Windows(PowerShell): $env:GH_TOKEN=“your_api_key”
- Linux/macOS: 导出GH_TOKEN=your_api_key
3.运行客户端
.net运行--项目McpPromptClient
- 使用
/resources查看可用的提示根/资源。 - 使用
/root [name]选择一个根。 - 使用
/listprompts查看当前根目录中的可用提示。 - 使用
/getprompt [name]获取提示。 - 键入您的消息,使用所选提示与LLM聊天。
- 类型
/exit退出。
______________________________________________________________________
📂 提示格式和配置
提示可以是Markdown(*.prompt.md)、纯文本、YAML、Jinja等。把它们放在 Prompts/ 或 PromptSets/ 目录,或在中配置文件夹 appsettings.json.
示例 appsettings.json PromptLoader部分:
"PromptLoader": {
"PromptListType": "named",
"PromptList": ["system", "instructions", "examples", "groundings", "guardrails", "output"],
"ConstrainPromptList": true,
"PromptsFolder": "Prompts",
"PromptSetFolder": "PromptSets",
"SupportedPromptExtensions": [".txt", ".prompt", ".yml", ".jinja", ".jinja2", ".prompt.md", ".md"],
"PromptSeparator": "\n{filename}:\n---\n",
"CascadeOverride": true- 提示列表类型: 如何解释提示列表:named、numeric、none。
- 提示列表: 加载/组合的特定命名提示
- 约束提示列表: 布尔值。仅在列表中加载提示
- PromptSet文件夹/Prompts文件夹: 在哪里可以找到提示集/文件
- 支持PrompTextensions: 要加载的文件类型
- 提示分隔符: 组合时如何加入提示
- 级联覆盖 : 更深的文件夹是否以相同的名称覆盖根提示(例如系统提示)
______________________________________________________________________
🤝 参考文献
______________________________________________________________________
✨ 为什么?
对于任何希望:
- 构建或集成符合MCP的提示服务器/客户端。
- 在中尝试高级提示管理、根/资源和LLM编排。网。
- 使用或扩展流畅的API进行提示操作。
- 了解MCP和提示操作生态系统。
______________________________________________________________________
