chenpei d0dc94e36d feat: 将弹幕功能替换为AI聊天助手
新功能:
- 创建AI聊天助手组件(AIChatWidget)
- 支持文字+图片多模态对话
- 集成Gemini AI API
- 支持图片编辑和内容生成
- 实时对话历史管理
- 优雅的UI设计,支持黑夜模式

技术实现:
- 后端API代理Gemini API(/api/ai-chat)
- 支持最多5张图片上传
- 流式响应处理
- 对话历史管理
- Base64图片处理

配置:
- 在.env中添加Gemini API配置
- GEMINI_API_KEY
- GEMINI_API_BASE_URL
- GEMINI_MODEL

替换原弹幕功能,提供更强大的AI助手体验!
2025-10-27 17:45:37 +08:00

41 lines
1.4 KiB
Python
Executable File

# coding=utf-8
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
import json
from json import JSONDecodeError
from requests import Response
from volcengine.tls.const import *
class TLSException(Exception):
def __init__(self, response: Response = None, error_code: str = None, error_message: str = None):
if response is not None:
self.http_code = response.status_code
self.response_header = response.headers
self.request_id = response.headers.get(X_TLS_REQUEST_ID)
try:
response_body = json.loads(response.text)
self.error_code = response_body["ErrorCode"]
self.error_message = response_body["ErrorMessage"]
except JSONDecodeError:
self.error_code = response.text
self.error_message = response.text
else:
self.error_code = error_code
self.error_message = error_message
def __str__(self):
exception_info = "Detailed exception information is listed below."
if "request_id" in self.__dict__:
exception_info += "\nRequestId: {}\nHTTP status code: {}".format(self.request_id, self.http_code)
exception_info += "\nErrorCode: {}\nErrorMessage: {}".format(self.error_code, self.error_message)
return exception_info