| | |
| | | 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.orm import relationship, backref |
| | | |
| | |
| | | user_group_table = Table('user_group', Base.metadata |
| | | , Column('user_id', Integer, ForeignKey('user.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): |
| | |
| | | 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 |
| | |
| | | session_id = data.get("id") |
| | | if not session_id: |
| | | 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: |
| | | try: |
| | | data["tenant_id"] = user_id |
| | |
| | | from fastapi import HTTPException |
| | | from starlette import status |
| | | |
| | | from Log import logger |
| | | # from Log import logger |
| | | from app.config.config import settings |
| | | from app.utils.rsa_crypto import RagflowCrypto |
| | | |
| | |
| | | async def set_user_password(self, token: str, password: str, new_password: str) -> str: |
| | | # print("password:", password) |
| | | # print("new_password:", new_password) |
| | | headers = { |
| | | 'Content-Type': 'application/json', |
| | | 'Authorization': token |
| | | } |
| | | password = RagflowCrypto(settings.PUBLIC_KEY, settings.PRIVATE_KEY).encrypt(password) |
| | | new_password = RagflowCrypto(settings.PUBLIC_KEY, settings.PRIVATE_KEY).encrypt(new_password) |
| | | url = f"{self.base_url}/v1/user/setting" |
| | | headers = {"Authorization": token} |
| | | # headers = {"Authorization": token} |
| | | 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) |
| | | data = self._handle_response(response) |
| | | logger.info("set_user_password:{}".format(data)) |
| | | print(data) |
| | | # logger.info("set_user_password:{}".format(data)) |
| | | return data |
| | | |
| | | |
| | | if __name__ == "__main__": |
| | | async def a(): |
| | | 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) |
| | | |
| | | import asyncio |
| | | # 在同步代码中启动异步主函数 |
| | | |
| | | asyncio.run(a()) |
| | | |
| | |
| | | from contextlib import asynccontextmanager |
| | | # from apscheduler.schedulers.background import BackgroundScheduler |
| | | from fastapi import FastAPI |
| | | from fastapi.middleware.cors import CORSMiddleware |
| | | |
| | | from app.api.auth import router as auth_router |
| | | from app.api.canvas import canvas_router |
| | | from app.api.chat import router as chat_router |
| | |
| | | lifespan=lifespan |
| | | ) |
| | | |
| | | |
| | | # 设置 CORS 中间件 |
| | | app.add_middleware( |
| | | CORSMiddleware, |
| | | allow_origins=["*"], # 允许所有域名跨域访问 |
| | | allow_credentials=True, |
| | | allow_methods=["*"], # 允许所有方法 |
| | | allow_headers=["*"], # 允许所有头部 |
| | | ) |
| | | # 创建调度器 |
| | | # scheduler = BackgroundScheduler() |
| | | # scheduler.add_job(sync_resource, 'interval', minutes=1, id="sync_resource_data") |