mirror of
https://github.com/RYDE-WORK/Langchain-Chatchat.git
synced 2026-01-25 16:23:22 +08:00
* 修复Azure 不设置Max token的bug * 重写agent 1. 修改Agent实现方式,支持多参数,仅剩 ChatGLM3-6b和 OpenAI GPT4 支持,剩余模型将在暂时缺席Agent功能 2. 删除agent_chat 集成到llm_chat中 3. 重写大部分工具,适应新Agent * 更新架构 * 删除web_chat,自动融合 * 移除所有聊天,都变成Agent控制 * 更新配置文件 * 更新配置模板和提示词 * 更改参数选择bug
41 lines
1.3 KiB
Python
41 lines
1.3 KiB
Python
from urllib.parse import urlencode
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
from server.knowledge_base.kb_doc_api import search_docs
|
|
from configs import TOOL_CONFIG
|
|
|
|
|
|
def search_knowledgebase(query: str, database: str, config: dict):
|
|
docs = search_docs(
|
|
query=query,
|
|
knowledge_base_name=database,
|
|
top_k=config["top_k"],
|
|
score_threshold=config["score_threshold"])
|
|
context = ""
|
|
source_documents = []
|
|
for inum, doc in enumerate(docs):
|
|
filename = doc.metadata.get("source")
|
|
parameters = urlencode({"knowledge_base_name": database, "file_name": filename})
|
|
url = f"download_doc?" + parameters
|
|
text = f"""出处 [{inum + 1}] [{filename}]({url}) \n\n{doc.page_content}\n\n"""
|
|
source_documents.append(text)
|
|
|
|
if len(source_documents) == 0:
|
|
context= "没有找到相关文档,请更换关键词重试"
|
|
else:
|
|
for doc in source_documents:
|
|
context += doc + "\n"
|
|
|
|
return context
|
|
|
|
|
|
class SearchKnowledgeInput(BaseModel):
|
|
database: str = Field(description="Database for Knowledge Search")
|
|
query: str = Field(description="Query for Knowledge Search")
|
|
|
|
|
|
def search_local_knowledgebase(database: str, query: str):
|
|
tool_config = TOOL_CONFIG["search_local_knowledgebase"]
|
|
return search_knowledgebase(query=query, database=database, config=tool_config)
|