update 20250403

This commit is contained in:
2025-04-03 06:21:55 +00:00
parent 0e57b2d02e
commit f557be8b7e
110 changed files with 569 additions and 16526 deletions
+30 -2
View File
@@ -23,6 +23,10 @@ REDIS_CHAT_DB = int(os.getenv('REDIS_CHAT_DB'))
REDIS_PASSWORD = os.getenv('REDIS_PASSWORD')
REDIS_TASK_DB = int(os.getenv('REDIS_TASK_DB'))
OLLAMA_URL = os.getenv('OLLAMA_URL')
OLLAMA_URLS = os.getenv('OLLAMA_URLS', OLLAMA_URL).split(',') # 兼容旧配置
OLLAMA_TIMEOUT = int(os.getenv('OLLAMA_TIMEOUT', 10))
# 创建Redis客户端
redis_client = redis.Redis(
host=REDIS_HOST,
@@ -51,6 +55,21 @@ def create_kafka_consumer():
value_deserializer=lambda x: json.loads(x.decode('utf-8'))
)
async def try_ollama_request(url, data):
"""尝试向单个 Ollama API 发送请求"""
try:
response = requests.post(
f"{url}/api/generate",
json=data,
stream=True,
timeout=OLLAMA_TIMEOUT
)
response.raise_for_status()
return response
except Exception as e:
print(f"API {url} 请求失败: {str(e)}")
return None
async def process_chat_request(chat_request):
try:
task_id = chat_request['task_id']
@@ -77,9 +96,17 @@ async def process_chat_request(chat_request):
"temperature": 0
}
response = requests.post("https://ffgregevrdcfyhtnhyudvr.myfastools.com/api/generate", json=data, stream=True)
response.raise_for_status()
# 尝试所有可用的 API 地址
response = None
for url in OLLAMA_URLS:
response = await try_ollama_request(url, data)
if response is not None:
print(f"使用 API 地址: {url}")
break
if response is None:
raise Exception("所有 API 地址均不可用")
text_output = ""
for line in response.iter_lines():
if line:
@@ -105,6 +132,7 @@ async def process_chat_request(chat_request):
# 设置任务状态为 "error"
redis_task_client.set(f"chat:{task_id}:status", "error")
redis_task_client.set(f"chat:{task_id}:error", str(e))
def kafka_consumer_thread(consumer_id):
consumer = create_kafka_consumer()
print(f"消费者 {consumer_id} 已启动")