From f95f801f35aa201cbaffd7d881c07edc9398b570 Mon Sep 17 00:00:00 2001 From: zhaoqingang <zhaoqg0118@163.com> Date: 星期一, 03 三月 2025 16:03:51 +0800 Subject: [PATCH] 增加外接知识库中转接口 --- app/models/dialog_model.py | 116 +++++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 75 insertions(+), 41 deletions(-) diff --git a/app/models/dialog_model.py b/app/models/dialog_model.py index bfa4a8c..50a8f8e 100644 --- a/app/models/dialog_model.py +++ b/app/models/dialog_model.py @@ -1,6 +1,8 @@ from datetime import datetime +from typing import Optional -from sqlalchemy import Column, Integer, String, Table, ForeignKey, DateTime, BigInteger, Text, Float, Boolean +from pydantic import BaseModel +from sqlalchemy import Column, Integer, String, BigInteger, ForeignKey, DateTime, Text, JSON from sqlalchemy.orm import relationship, backref from app.models.base_model import Base @@ -10,29 +12,18 @@ __mapper_args__ = { # "order_by": 'SEQ' } - id = Column(String(32), primary_key=True) - create_time = Column(BigInteger) - create_date = Column(DateTime) - update_time = Column(BigInteger) - update_date = Column(DateTime) - tenant_id = Column(String(32)) - name = Column(String(255)) - description = Column(Text) - icon = Column(Text) - language = Column(String(32)) - llm_id = Column(String(128)) - llm_setting = Column(Text) - prompt_type = Column(String(16)) - prompt_config = Column(Text) - similarity_threshold = Column(Float) - vector_similarity_weight = Column(Float) - top_n = Column(Integer) - top_k = Column(Integer) - do_refer = Column(String(1)) - rerank_id = Column(String(128)) - kb_ids = Column(Text) - status = Column(String(1)) - hide = Column(Boolean) + id = Column(String(36), primary_key=True) # id + create_date = Column(DateTime, default=datetime.now()) # 鍒涘缓鏃堕棿 + update_date = Column(DateTime, default=datetime.now(), onupdate=datetime.now()) # 鏇存柊鏃堕棿 + tenant_id = Column(String(36)) # 鍒涘缓浜� + name = Column(String(255)) # 鍚嶇О + description = Column(Text) # 璇存槑 + icon = Column(Text, default="intelligentFrame1") # 鍥炬爣 + status = Column(String(1), default="0") # 鐘舵�� + dialog_type = Column(String(1)) # 骞冲彴 + # agent_id = Column(String(36)) + mode = Column(String(36)) + parameters = Column(Text) def get_id(self): return str(self.id) @@ -40,23 +31,66 @@ def to_json(self): return { 'id': self.id, - 'create_time': self.create_time, - 'create_date': self.create_date, - 'update_time': self.update_time, - 'update_date': self.update_date, - 'tenant_id': self.tenant_id, + 'create_date': self.create_date.strftime('%Y-%m-%d %H:%M:%S'), + 'update_date': self.update_date.strftime('%Y-%m-%d %H:%M:%S'), + 'user_id': self.tenant_id, 'name': self.name, 'description': self.description, 'icon': self.icon, - 'language': self.language, - 'llm_id': self.llm_id, - 'prompt_type': self.prompt_type, - 'prompt_config': self.prompt_config, - 'similarity_threshold': self.similarity_threshold, - 'vector_similarity_weight': self.vector_similarity_weight, - 'top_n': self.top_n, - 'top_k': self.top_k, - 'do_refer': self.do_refer, - 'kb_ids': self.kb_ids, - 'status': self.status - } \ No newline at end of file + 'status': self.status, + 'agentType': self.dialog_type, + # 'agentId': self.agent_id, + 'mode': self.mode, + } + + +class ConversationModel(Base): + __tablename__ = 'conversation' + id = Column(String(32), primary_key=True) # id + create_date = Column(DateTime) # 鍒涘缓鏃堕棿 + create_time = Column(BigInteger) + update_date = Column(DateTime) # 鏇存柊鏃堕棿 + update_time = Column(BigInteger, index=True) + tenant_id = Column(Integer) # 鍒涘缓浜� + dialog_id = Column(String(32)) + name = Column(String(255)) # 鍚嶇О + message = Column(JSON) # 璇存槑 + reference = Column(JSON) # 鍥炬爣 + + def get_id(self): + return str(self.id) + + + def to_json(self): + return { + 'id': self.id, + 'updated_time': self.update_time, + 'update_date': datetime.fromtimestamp(self.update_time / 1000.0).strftime('%Y-%m-%d %H:%M:%S'), + 'name': self.name, + } + + +class dialogData(BaseModel): + id: str + name: str + description: Optional[str] = "" + dialogType: str + icon: str + mode: str + + +class dialogDataUpdate(BaseModel): + id: str + status: Optional[str] = "1" + icon: Optional[str] = "" + name: Optional[str] = "" + description: Optional[str] = None + + +class dialogList(BaseModel): + current: Optional[int] = 1 + pageSize: Optional[int] = 10 + keyword: Optional[str] = "" + label: Optional[list] = [] + status: Optional[str] = "" + mode: Optional[str] = "" \ No newline at end of file -- Gitblit v1.8.0