新功能: - 创建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助手体验!
41 lines
1.4 KiB
Python
Executable File
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
|