Ubuntu 3 ay önce
ebeveyn
işleme
34b4bd6b0e
1 değiştirilmiş dosya ile 22 ekleme ve 12 silme
  1. 22 12
      main.py

+ 22 - 12
main.py

@@ -10,8 +10,8 @@ import chromadb
 from datetime import timedelta
 from fastapi.middleware.cors import CORSMiddleware
 from fastapi.middleware.gzip import GZipMiddleware
-##from sentence_transformers  import SentenceTransformer
-model = None##SentenceTransformer("BAAI/bge-small-zh-v1.5")
+from sentence_transformers  import SentenceTransformer
+model = SentenceTransformer("BAAI/bge-small-zh-v1.5")
 import base64
 from pydantic import BaseModel
 from subdir import service
@@ -20,9 +20,14 @@ from subdir import util
 import xml.dom.minidom as MD
 import numpy as np
 from fastapi.staticfiles import StaticFiles
+import httpx
+httpClient = httpx.AsyncClient()
 from pymongo import AsyncMongoClient
-client = AsyncMongoClient()
-chroma_client = None##chromadb.HttpClient(host='localhost', port=8000)
+uri = "mongodb://owner:Pheecian1@47.101.198.30:27017/baojia"
+uri2 = "mongodb://owner:Pheecian1@47.101.198.30:27017/dinge"
+client = AsyncMongoClient(uri)
+dingeclient = AsyncMongoClient(uri2)
+chroma_client = chromadb.HttpClient(host='47.101.198.30', port=8000)
 from fastapi.responses import FileResponse, RedirectResponse
 from fastapi_cache import FastAPICache
 from inmemory import InMemoryBackend
@@ -789,7 +794,7 @@ async def read_singledexilie(zhuanye: int, debh: str, mc: str):
         position = r_debh.find("附注")
         r_debh = r_debh[:position]
     ##print(r_debh)
-    result1, result2, rgde, jxde, clde, bz_selected, bz_selected2, actual_zhuanye= await db.getSingleDeXilie(model, client, zhuanye, r_debh, mc)
+    result1, result2, rgde, jxde, clde, bz_selected, bz_selected2, actual_zhuanye= await db.getSingleDeXilie(model, dingeclient, zhuanye, r_debh, mc)
     ###print("get result ***************************************")
     if result1:
         result3 = json.loads(result1)
@@ -859,7 +864,7 @@ async def read_singledexilie(zhuanye: int, debh: str, mc: str):
         else:
             result3["reverse"] = 'None'
             return json.dumps(service.chaifen(result3, actual_zhuanye), ensure_ascii=False)
-        result1_, result2_, rgde_, jxde_, clde_, bz_selected_, bz_selected2_, actual_zhuanye_ = await db.getSingleDeXilie(model, client, zhuanye, debh, mc)
+        result1_, result2_, rgde_, jxde_, clde_, bz_selected_, bz_selected2_, actual_zhuanye_ = await db.getSingleDeXilie(model, dingeclient, zhuanye, debh, mc)
         if result1_:
             util.mergerg(rgde, rgde_, coef)
             util.mergejx(jxde, jxde_, coef)
@@ -968,7 +973,7 @@ async def tiaojia(r: Tiaojia, user=Depends(manager)):
 async def searchde(r: SearchDe):
     ##return []
     
-    return await db.searchde(client, r.zhuanye, r.text)
+    return await db.searchde(dingeclient, r.zhuanye, r.text)
 
 @app.post("/updatezjcs/")
 async def updatezjcs(r: UpdateZjcs, user=Depends(manager)):
@@ -986,7 +991,7 @@ async def upload(file: Annotated[UploadFile, File()], token: Annotated[str, Form
         string = content.decode('utf-8')
         await resolve(string, user)
         return [file.filename]
-    elif file.filename.endswith("jszf"):
+    elif file.filename.endswith("jszf") or file.filename.endswith("JSZF"):
         content = await file.read()
         string = content.decode('utf-8')
         root = ET.fromstring(string)
@@ -1060,10 +1065,15 @@ async def resolve(data, user):
 ##    except WebSocketDisconnect:
 ##        manager.disconnect(websocket)
 ##        ##await manager.broadcast(f"Client  left the chat")
-    
+
+##    {'access_token': '96__yNpsN6UIOtAgfNOmu34wdt4BBnN9vZLbzCq94NCQnKoDNu7H217eM7ZMS-KZDcV9CyfpLmY80829lbJ20EFasEtBbqetdazuTYHn_8IZ34', 'expires_in': 7200, 'refresh_token': '96_JMFvhYr0scOw9pWs_ygdwYZbku9FwSbO-hcI0OVchVHoqUsXeZtZpQKCJOiq4y-LwIacvlC9huClMLTqE0CUcwugvyOV_pnr2rBYw3aTRWg', 'openid': 'oEcfS62dGXuzzAADYPzjr6OXYdJk', 'scope': 'snsapi_login', 'unionid': 'o1X7S67iVGRVbqvrjr1_UzBE4xdg'}
 
 @app.post("/token/")
 async def token(r : Info):
-    token = manager.create_access_token(data=dict(sub=r.name), expires=timedelta(hours=12))
-    return {'token' : token, 'token_type' : 'bearer'}
-    
+    response = await httpClient.get("https://api.weixin.qq.com/sns/oauth2/access_token?appid=wx74b45ac9983e4b3e&secret=bf6741ce4209a0af45f267be2abf560b&code="+ r.name + "&grant_type=authorization_code")
+    info = (response.json())
+    response = await httpClient.get("https://api.weixin.qq.com/sns/userinfo?access_token=" + info['access_token'] + "&openid="+ info['openid'])
+    info = (response.json())
+    token = manager.create_access_token(data=dict(sub=info['openid']), expires=timedelta(hours=12))
+    return {'token' : token, 'token_type' : 'bearer', "nickname": info['nickname'], "img" : info['headimgurl'], "openid" : info["openid"]}
+