zhaoqingang 1 год назад
Родитель
Сommit
1b417d75a8
4 измененных файлов с 29 добавлено и 9 удалено
  1. 2 2
      app/models/user_model.py
  2. 5 0
      app/service/dialog.py
  3. 12 6
      app/service/ragflow.py
  4. 10 1
      main.py

+ 2 - 2
app/models/user_model.py

@@ -1,6 +1,6 @@
 from datetime import datetime
 from datetime import datetime
 
 
-# from cryptography.fernet import Fernet
+from cryptography.fernet import Fernet
 from sqlalchemy import Column, Integer, String, Table, ForeignKey, DateTime
 from sqlalchemy import Column, Integer, String, Table, ForeignKey, DateTime
 from sqlalchemy.orm import relationship, backref
 from sqlalchemy.orm import relationship, backref
 
 
@@ -18,7 +18,7 @@ user_role_table = Table('user_role', Base.metadata
 user_group_table = Table('user_group', Base.metadata
 user_group_table = Table('user_group', Base.metadata
                            , Column('user_id', Integer, ForeignKey('user.id', ondelete='CASCADE'))
                            , Column('user_id', Integer, ForeignKey('user.id', ondelete='CASCADE'))
                            , Column('group_id', Integer, ForeignKey('group.id', ondelete='CASCADE')))
                            , Column('group_id', Integer, ForeignKey('group.id', ondelete='CASCADE')))
-# cipher_suite = Fernet(settings.PASSWORD_KEY.encode("utf-8"))
+cipher_suite = Fernet(settings.PASSWORD_KEY.encode("utf-8"))
 
 
 
 
 class UserModel(Base):
 class UserModel(Base):

+ 5 - 0
app/service/dialog.py

@@ -1,3 +1,5 @@
+from datetime import datetime
+
 from app.api.user import user_list
 from app.api.user import user_list
 from app.models import KnowledgeModel, GroupModel, DialogModel, ConversationModel
 from app.models import KnowledgeModel, GroupModel, DialogModel, ConversationModel
 from app.models.user_model import UserModel
 from app.models.user_model import UserModel
@@ -27,6 +29,9 @@ async def update_session_history(db, data: dict, user_id, is_new):
     session_id = data.get("id")
     session_id = data.get("id")
     if not session_id:
     if not session_id:
         logger.error("更新回话记录失败!{}".format(data))
         logger.error("更新回话记录失败!{}".format(data))
+
+    data["create_date"] = datetime.strptime(data["create_date"], '%a, %d %b %Y %H:%M:%S %Z')
+    data["update_date"] = datetime.strptime(data["update_date"], '%a, %d %b %Y %H:%M:%S %Z')
     if is_new:
     if is_new:
         try:
         try:
             data["tenant_id"] = user_id
             data["tenant_id"] = user_id

+ 12 - 6
app/service/ragflow.py

@@ -3,7 +3,7 @@ from typing import Union, Dict, List
 from fastapi import HTTPException
 from fastapi import HTTPException
 from starlette import status
 from starlette import status
 
 
-from Log import logger
+# from Log import logger
 from app.config.config import settings
 from app.config.config import settings
 from app.utils.rsa_crypto import RagflowCrypto
 from app.utils.rsa_crypto import RagflowCrypto
 
 
@@ -193,27 +193,33 @@ class RagflowService:
     async def set_user_password(self, token: str, password: str, new_password: str) -> str:
     async def set_user_password(self, token: str, password: str, new_password: str) -> str:
         # print("password:", password)
         # print("password:", password)
         # print("new_password:", new_password)
         # print("new_password:", new_password)
+        headers = {
+            'Content-Type': 'application/json',
+            'Authorization': token
+        }
         password = RagflowCrypto(settings.PUBLIC_KEY, settings.PRIVATE_KEY).encrypt(password)
         password = RagflowCrypto(settings.PUBLIC_KEY, settings.PRIVATE_KEY).encrypt(password)
         new_password = RagflowCrypto(settings.PUBLIC_KEY, settings.PRIVATE_KEY).encrypt(new_password)
         new_password = RagflowCrypto(settings.PUBLIC_KEY, settings.PRIVATE_KEY).encrypt(new_password)
         url = f"{self.base_url}/v1/user/setting"
         url = f"{self.base_url}/v1/user/setting"
-        headers = {"Authorization": token}
+        # headers = {"Authorization": token}
         data = {"password": password, "new_password":new_password}
         data = {"password": password, "new_password":new_password}
 
 
         async with httpx.AsyncClient(timeout=60) as client:
         async with httpx.AsyncClient(timeout=60) as client:
             response = await client.post(url, headers=headers, data=data)
             response = await client.post(url, headers=headers, data=data)
+            print(response.text)
             data = self._handle_response(response)
             data = self._handle_response(response)
-            logger.info("set_user_password:{}".format(data))
+            print(data)
+            # logger.info("set_user_password:{}".format(data))
             return data
             return data
 
 
 
 
 if __name__ == "__main__":
 if __name__ == "__main__":
     async def a():
     async def a():
         a = RagflowService("http://192.168.20.119:11080")
         a = RagflowService("http://192.168.20.119:11080")
-        b = await a.get_knowledge_list("625e1f24a26811ef8f940242ac130006", 1,
-                                 10)
+        b = await a.set_user_password("IjYwYjg1MTFjYTY1NTExZWY4ODZlMDI0MmFjMTMwMDA2Ig.ZzxUxQ.8rIH2HifXNWtkNsnODv6XFHjGVU", "123456",
+                                 "000000")
         print(b)
         print(b)
 
 
     import asyncio
     import asyncio
-    # 在同步代码中启动异步主函数
+
     asyncio.run(a())
     asyncio.run(a())
 
 

+ 10 - 1
main.py

@@ -1,6 +1,8 @@
 from contextlib import asynccontextmanager
 from contextlib import asynccontextmanager
 # from apscheduler.schedulers.background import BackgroundScheduler
 # from apscheduler.schedulers.background import BackgroundScheduler
 from fastapi import FastAPI
 from fastapi import FastAPI
+from fastapi.middleware.cors import CORSMiddleware
+
 from app.api.auth import router as auth_router
 from app.api.auth import router as auth_router
 from app.api.canvas import canvas_router
 from app.api.canvas import canvas_router
 from app.api.chat import router as chat_router
 from app.api.chat import router as chat_router
@@ -40,7 +42,14 @@ app = FastAPI(
     lifespan=lifespan
     lifespan=lifespan
 )
 )
 
 
-
+# 设置 CORS 中间件
+app.add_middleware(
+    CORSMiddleware,
+    allow_origins=["*"],  # 允许所有域名跨域访问
+    allow_credentials=True,
+    allow_methods=["*"],  # 允许所有方法
+    allow_headers=["*"],  # 允许所有头部
+)
 # 创建调度器
 # 创建调度器
 # scheduler = BackgroundScheduler()
 # scheduler = BackgroundScheduler()
 # scheduler.add_job(sync_resource, 'interval', minutes=1, id="sync_resource_data")
 # scheduler.add_job(sync_resource, 'interval', minutes=1, id="sync_resource_data")