zhaoqingang
2024-11-20 081a109d369966182e5d6e4ff3ab38bb8512b498
优化
4个文件已修改
56 ■■■■ 已修改文件
app/service/dialog.py 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/service/ragflow.py 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/service/service_token.py 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/service/user.py 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/service/dialog.py
@@ -1,6 +1,5 @@
from datetime import datetime
from app.api.user import user_list
from app.models import KnowledgeModel, GroupModel, DialogModel, ConversationModel
from app.models.user_model import UserModel
from Log import logger
@@ -29,7 +28,7 @@
    session_id = data.get("id")
    if not session_id:
        logger.error("更新回话记录失败!{}".format(data))
        return
    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:
app/service/ragflow.py
@@ -182,11 +182,11 @@
    async def get_knowledge_list(self, token: str, page_index: int, page_size: int) -> str:
        url = f"{self.base_url}/v1/kb/list"
        headers = {"Authorization": token}
        params = {"page": page_index, "page_size": page_size}
        # params = {"page": page_index, "page_size": page_size}
        params = {}
        async with httpx.AsyncClient(timeout=60) as client:
            response = await client.get(url, headers=headers, params=params)
            res = self._handle_response(response)
            print(res)
            return res
@@ -204,10 +204,8 @@
        data = {"password": password, "new_password":new_password}
        async with httpx.AsyncClient(timeout=60) as client:
            response = await client.post(url, headers=headers, data=data)
            print(response.text)
            response = await client.post(url, headers=headers, json=data)
            data = self._handle_response(response)
            print(data)
            # logger.info("set_user_password:{}".format(data))
            return data
@@ -215,8 +213,8 @@
if __name__ == "__main__":
    async def a():
        a = RagflowService("http://192.168.20.119:11080")
        b = await a.set_user_password("IjYwYjg1MTFjYTY1NTExZWY4ODZlMDI0MmFjMTMwMDA2Ig.ZzxUxQ.8rIH2HifXNWtkNsnODv6XFHjGVU", "123456",
                                 "000000")
        b = await a.get_knowledge_list("ImY3ZTZlZWQwYTY2NTExZWY5ZmFiMDI0MmFjMTMwMDA2Ig.Zzxwmw.uI_HAWzOkipQuga1aeQtoeIc3IM", 1,
                                 10)
        print(b)
    import asyncio
app/service/service_token.py
@@ -1,4 +1,9 @@
from Log import logger
from app.config.config import settings
from app.models import UserModel
from app.models.token_model import TokenModel
from app.service.bisheng import BishengService
from app.service.ragflow import RagflowService
def get_bisheng_token(db, user_id: int):
@@ -13,3 +18,33 @@
    if not token:
        return None
    return token.ragflow_token
async def get_ragflow_new_token(db, user_id: int, app_type):
    user = db.query(UserModel).filter(UserModel.id == user_id).first()
    if not user:
        return None
    if app_type == 1:
        ragflow_service = RagflowService(settings.fwr_base_url)
        # 登录到ragflow
        try:
            ragflow_token = await ragflow_service.login(user.username, user.decrypted_password())
            return ragflow_token
        except Exception as e:
            logger.error(e)
            # return Response(code=500, msg=f"Failed to login with Ragflow: {str(e)}")
            return None
    elif  app_type == 2:
        bisheng_service = BishengService(settings.sgb_base_url)
        # 登录到毕昇
        try:
            bisheng_token = await bisheng_service.login(user.username, user.decrypted_password())
            return bisheng_token
        except Exception as e:
            logger.error(e)
            # return Response(code=500, msg=f"Failed to login with Ragflow: {str(e)}")
            return None
    else:
        logger.error("错误的应用类型{}".format(app_type))
app/service/user.py
@@ -8,7 +8,7 @@
from app.service.bisheng import BishengService
from app.service.common.app_register import AppRegister
from app.service.ragflow import RagflowService
from app.service.service_token import get_ragflow_token, get_bisheng_token
from app.service.service_token import get_ragflow_token, get_bisheng_token, get_ragflow_new_token
async def get_user_list(db, page_index: int, page_size: int, keyword: str, role_key:str, user_id):
@@ -104,11 +104,9 @@
    try:
        user = db.query(UserModel).filter(UserModel.id == user_id).first()
        pwd = user.decrypted_password()
        print(pwd)
        print(new_password)
        for app_type in AppRegister(db).get_app():
            if app_type == AgentType.RAGFLOW:
                token = get_ragflow_token(db, user_id)
                token = await get_ragflow_new_token(db, user_id, app_type)
                ragflow_service = RagflowService(settings.fwr_base_url)
                await ragflow_service.set_user_password(token, pwd, new_password)
            elif app_type == AgentType.BISHENG: