mirror of
https://github.com/RYDE-WORK/Langchain-Chatchat.git
synced 2026-01-19 21:37:20 +08:00
- 重构 api.py:
- 按模块划分为不同的 router
- 添加 openai 兼容的转发接口,项目默认使用该接口以实现模型负载均衡
- 添加 /tools 接口,可以获取/调用编写的 agent tools
- 移除所有 EmbeddingFuncAdapter,统一改用 get_Embeddings
- 待办:
- /chat/chat 接口改为 openai 兼容
- 添加 /chat/kb_chat 接口,openai 兼容
- 改变 ntlk/knowledge_base/logs 等数据目录位置
90 lines
3.2 KiB
Python
90 lines
3.2 KiB
Python
from __future__ import annotations
|
||
|
||
from typing import List
|
||
|
||
from fastapi import APIRouter, Request
|
||
|
||
from server.chat.file_chat import upload_temp_docs
|
||
from server.knowledge_base.kb_api import list_kbs, create_kb, delete_kb
|
||
from server.knowledge_base.kb_doc_api import (list_files, upload_docs, delete_docs,
|
||
update_docs, download_doc, recreate_vector_store,
|
||
search_docs, update_info)
|
||
from server.knowledge_base.kb_summary_api import (summary_file_to_vector_store, recreate_summary_vector_store,
|
||
summary_doc_ids_to_vector_store)
|
||
from server.knowledge_base.model.kb_document_model import DocumentWithVSId
|
||
from server.utils import BaseResponse, ListResponse
|
||
|
||
|
||
kb_router = APIRouter(prefix="/knowledge_base", tags=["Knowledge Base Management"])
|
||
|
||
|
||
kb_router.get("/list_knowledge_bases",
|
||
response_model=ListResponse,
|
||
summary="获取知识库列表")(list_kbs)
|
||
|
||
kb_router.post("/create_knowledge_base",
|
||
response_model=BaseResponse,
|
||
summary="创建知识库"
|
||
)(create_kb)
|
||
|
||
kb_router.post("/delete_knowledge_base",
|
||
response_model=BaseResponse,
|
||
summary="删除知识库"
|
||
)(delete_kb)
|
||
|
||
kb_router.get("/list_files",
|
||
response_model=ListResponse,
|
||
summary="获取知识库内的文件列表"
|
||
)(list_files)
|
||
|
||
kb_router.post("/search_docs",
|
||
response_model=List[DocumentWithVSId],
|
||
summary="搜索知识库"
|
||
)(search_docs)
|
||
|
||
kb_router.post("/upload_docs",
|
||
response_model=BaseResponse,
|
||
summary="上传文件到知识库,并/或进行向量化"
|
||
)(upload_docs)
|
||
|
||
kb_router.post("/delete_docs",
|
||
response_model=BaseResponse,
|
||
summary="删除知识库内指定文件"
|
||
)(delete_docs)
|
||
|
||
kb_router.post("/update_info",
|
||
response_model=BaseResponse,
|
||
summary="更新知识库介绍"
|
||
)(update_info)
|
||
|
||
kb_router.post("/update_docs",
|
||
response_model=BaseResponse,
|
||
summary="更新现有文件到知识库"
|
||
)(update_docs)
|
||
|
||
kb_router.get("/download_doc",
|
||
summary="下载对应的知识文件")(download_doc)
|
||
|
||
kb_router.post("/recreate_vector_store",
|
||
summary="根据content中文档重建向量库,流式输出处理进度。"
|
||
)(recreate_vector_store)
|
||
|
||
kb_router.post("/upload_temp_docs",
|
||
summary="上传文件到临时目录,用于文件对话。"
|
||
)(upload_temp_docs)
|
||
|
||
|
||
summary_router = APIRouter(prefix="/kb_summary_api")
|
||
summary_router.post("/summary_file_to_vector_store",
|
||
summary="单个知识库根据文件名称摘要"
|
||
)(summary_file_to_vector_store)
|
||
summary_router.post("/summary_doc_ids_to_vector_store",
|
||
summary="单个知识库根据doc_ids摘要",
|
||
response_model=BaseResponse,
|
||
)(summary_doc_ids_to_vector_store)
|
||
summary_router.post("/recreate_summary_vector_store",
|
||
summary="重建单个知识库文件摘要"
|
||
)(recreate_summary_vector_store)
|
||
|
||
kb_router.include_router(summary_router)
|