Spaces:
Sleeping
Sleeping
| from fastapi import APIRouter, Request, Depends | |
| import requests | |
| from global_state import get | |
| from db_model.user import UserModel | |
| from auth import get_current_user | |
| from db.tbs_db import TbsDb | |
| router = APIRouter() | |
| db_module_filename = f"{get('project_root')}/db/cloudflare.py" | |
| async def embed(request:Request, current_user: UserModel = Depends(get_current_user)): | |
| data = await request.json() | |
| model = data.get('model', '') | |
| if (model=='')or(model is None): | |
| return {'error': 'model is empty'} | |
| api_key_info = await get_api_key(model) | |
| api_key = api_key_info.get('api_key', '') | |
| base_url = api_key_info.get('base_url', '') | |
| headers = { | |
| 'Content-Type': 'application/json', | |
| 'Authorization': f'Bearer {api_key}', | |
| 'User-Agent': 'PostmanRuntime/7.43.0' | |
| } | |
| try: | |
| response = requests.post(url=f"{base_url}/embed", headers=headers, json=data) | |
| return response.json() | |
| except Exception as e: | |
| return {'error': e} | |
| async def rerank(request:Request, current_user: UserModel = Depends(get_current_user)): | |
| data = await request.json() | |
| model = data.get('model', '') | |
| if (model=='')or(model is None): | |
| return {'error': 'model is empty'} | |
| api_key_info = await get_api_key(model) | |
| api_key = api_key_info.get('api_key', '') | |
| base_url = api_key_info.get('base_url', '') | |
| headers = { | |
| 'Content-Type': 'application/json', | |
| 'Authorization': f'Bearer {api_key}', | |
| 'User-Agent': 'PostmanRuntime/7.43.0' | |
| } | |
| try: | |
| response = requests.post(url=f"{base_url}/rerank", headers=headers, json=data) | |
| return response.json() | |
| except Exception as e: | |
| return {'error': e} | |
| async def get_api_key(model): | |
| query = f""" | |
| SELECT an.api_name, ak.api_key, an.base_url, ag.group_name | |
| FROM api_keys ak | |
| JOIN api_groups ag ON ak.api_group_id = ag.id | |
| JOIN api_names an ON an.api_group_id = ag.id | |
| WHERE an.api_name='{model}' and disabled=0 | |
| ORDER BY ak.last_call_at | |
| limit 1 | |
| """ | |
| # WHERE ak.category='LLM' and an.api_name='{model}' and disabled=0 | |
| response = TbsDb(db_module_filename, "Cloudflare").get_item(query) | |
| try: | |
| result = response['result'][0]['results'][0] | |
| api_key = result['api_key'] | |
| except: | |
| api_key = '' | |
| query = f"update api_keys set last_call_at=datetime('now') where api_key='{api_key}'" | |
| TbsDb(db_module_filename, "Cloudflare").execute_query(query) | |
| return result | |