main
HuangHai 4 weeks ago
parent 8d8b4513a6
commit d749ee816c

@ -1,27 +1,26 @@
import asyncio import urllib.parse
from contextlib import asynccontextmanager from contextlib import asynccontextmanager
from io import BytesIO
from logging.handlers import RotatingFileHandler from logging.handlers import RotatingFileHandler
import html2text
import jieba # 导入 jieba 分词库 import jieba # 导入 jieba 分词库
import uvicorn import uvicorn
from docx import Document
from fastapi import FastAPI, Request, HTTPException from fastapi import FastAPI, Request, HTTPException
from pydantic import BaseModel, Field, ValidationError
from fastapi.staticfiles import StaticFiles from fastapi.staticfiles import StaticFiles
from openai import OpenAI
from sse_starlette.sse import EventSourceResponse
from gensim.models import KeyedVectors from gensim.models import KeyedVectors
from openai import OpenAI
from pydantic import BaseModel, Field, ValidationError
from starlette.responses import StreamingResponse from starlette.responses import StreamingResponse
from Config import Config from Config import Config
from Config.Config import MS_MODEL_PATH, MS_MODEL_LIMIT, MS_HOST, MS_PORT, MS_MAX_CONNECTIONS, MS_NPROBE, DEEPSEEK_API_KEY, DEEPSEEK_URL, MS_COLLECTION_NAME from Config.Config import MS_MODEL_PATH, MS_MODEL_LIMIT, MS_HOST, MS_PORT, MS_MAX_CONNECTIONS, MS_NPROBE, \
MS_COLLECTION_NAME
from Milvus.Utils.MilvusCollectionManager import MilvusCollectionManager from Milvus.Utils.MilvusCollectionManager import MilvusCollectionManager
from Milvus.Utils.MilvusConnectionPool import * from Milvus.Utils.MilvusConnectionPool import *
from Milvus.Utils.MilvusConnectionPool import MilvusConnectionPool from Milvus.Utils.MilvusConnectionPool import MilvusConnectionPool
from docx import Document
from docx.shared import Inches
from io import BytesIO
import html2text
import urllib.parse
# 初始化日志 # 初始化日志
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO) logger.setLevel(logging.INFO)
@ -93,7 +92,7 @@ async def generate_stream(client, milvus_pool, collection_manager, query):
results = collection_manager.search(current_embedding, search_params, limit=5) # 返回 2 条结果 results = collection_manager.search(current_embedding, search_params, limit=5) # 返回 2 条结果
# 3. 处理搜索结果 # 3. 处理搜索结果
logger.info("最相关的历史对话:") logger.info("最相关的知识库内容:")
context = "" context = ""
if results: if results:
for hits in results: for hits in results:
@ -101,17 +100,18 @@ async def generate_stream(client, milvus_pool, collection_manager, query):
try: try:
# 查询非向量字段 # 查询非向量字段
record = collection_manager.query_by_id(hit.id) record = collection_manager.query_by_id(hit.id)
logger.info(f"ID: {hit.id}") if hit.distance < 0.88: # 设置距离阈值
logger.info(f"标签: {record['tags']}") logger.info(f"ID: {hit.id}")
logger.info(f"用户问题: {record['user_input']}") logger.info(f"标签: {record['tags']}")
logger.info(f"用户问题: {record['user_input']}")
# 获取完整内容
full_content = record['tags'].get('full_content', record['user_input']) logger.info(f"时间: {record['timestamp']}")
context = context + full_content logger.info(f"距离: {hit.distance}")
logger.info("-" * 40) # 分隔线
logger.info(f"时间: {record['timestamp']}") # 获取完整内容
logger.info(f"距离: {hit.distance}") full_content = record['tags'].get('full_content', record['user_input'])
logger.info("-" * 40) # 分隔线 context = context + full_content
except Exception as e: except Exception as e:
logger.error(f"查询失败: {e}") logger.error(f"查询失败: {e}")
else: else:

Loading…
Cancel
Save