67 lines
2.1 KiB
Python
67 lines
2.1 KiB
Python
# server.py
|
|
|
|
import logging
|
|
|
|
from fastmcp import FastMCP
|
|
|
|
from db.milvus import get_knowledge_by_key_words
|
|
|
|
logger = logging.getLogger("room_knowledge_mcp")
|
|
logging.basicConfig(level=logging.INFO)
|
|
|
|
# 固定知识库ID
|
|
ROOM_KN_ID = "21bc9fd3-9c11-4564-a420-ba91e30c75f0"
|
|
|
|
|
|
def register_room_knowledge_tools(mcp: FastMCP):
|
|
@mcp.tool()
|
|
def query_room_knowledge(key_words: str) -> dict:
|
|
"""
|
|
📘 共育室基本知识查询工具
|
|
|
|
功能:
|
|
用于查询与“共育室”相关的知识内容,供客服或内部系统参考。
|
|
知识库内容包含蚕房共育室的功能、参数、特点、预算、智能控制逻辑等基础信息。
|
|
|
|
参数:
|
|
key_words: 查询关键词(如 “共育室温度预警设置范围” 或 “共育室作用”)
|
|
|
|
返回:
|
|
- success: 是否成功
|
|
- topic: 固定主题 "共育室基本知识"
|
|
- result: 匹配到的知识内容文本
|
|
- error: 错误信息(如有)
|
|
"""
|
|
try:
|
|
logger.info(f"🧭 查询共育室知识: key_words='{key_words}'")
|
|
|
|
# 强制使用共育室的知识库ID
|
|
kn_ids = [ROOM_KN_ID]
|
|
|
|
# 检索知识内容
|
|
text = get_knowledge_by_key_words(key_words, kn_ids)
|
|
|
|
if not text.strip() or "未找到" in text:
|
|
return {
|
|
"success": False,
|
|
"topic": "共育室基本知识",
|
|
"result": None,
|
|
"error": f"未找到与关键词 '{key_words}' 相关的共育室知识。",
|
|
}
|
|
|
|
return {
|
|
"success": True,
|
|
"topic": "共育室基本知识",
|
|
"result": text,
|
|
"error": None,
|
|
}
|
|
|
|
except Exception as e:
|
|
logger.exception("❌ 共育室知识查询出错")
|
|
return {
|
|
"success": False,
|
|
"topic": "共育室基本知识",
|
|
"result": None,
|
|
"error": str(e),
|
|
}
|