mirror of
https://github.com/langbot-app/LangBot.git
synced 2025-11-25 03:15:06 +08:00
41 lines
943 B
Python
41 lines
943 B
Python
# 定义不同接口请求的模型
|
|
import threading
|
|
import asyncio
|
|
import logging
|
|
|
|
import openai
|
|
|
|
|
|
class RequestBase:
|
|
|
|
client: openai.Client
|
|
|
|
req_func: callable
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
raise NotImplementedError
|
|
|
|
def _next_key(self):
|
|
import pkg.utils.context as context
|
|
switched, name = context.get_openai_manager().key_mgr.auto_switch()
|
|
logging.debug("切换api-key: switched={}, name={}".format(switched, name))
|
|
self.client.api_key = context.get_openai_manager().key_mgr.get_using_key()
|
|
|
|
def _req(self, **kwargs):
|
|
"""处理代理问题"""
|
|
import config
|
|
|
|
ret = self.req_func(**kwargs)
|
|
logging.debug("接口请求返回:%s", str(ret))
|
|
|
|
if config.switch_strategy == 'active':
|
|
self._next_key()
|
|
|
|
return ret
|
|
|
|
def __iter__(self):
|
|
raise self
|
|
|
|
def __next__(self):
|
|
raise NotImplementedError
|