新功能: - 创建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
836 B
Python
Executable File
41 lines
836 B
Python
Executable File
import json
|
|
|
|
|
|
class ChatRole:
|
|
USER = "user"
|
|
ASSISTANT = "assistant"
|
|
SYSTEM = "system"
|
|
FUNCTION = "function"
|
|
|
|
|
|
class _Dict(dict):
|
|
__setattr__ = dict.__setitem__
|
|
__getattr__ = dict.__getitem__
|
|
|
|
def __missing__(self, key):
|
|
return None
|
|
|
|
|
|
def dict_to_object(dict_obj):
|
|
# 支持嵌套类型
|
|
if isinstance(dict_obj, list):
|
|
insts = []
|
|
for i in dict_obj:
|
|
insts.append(dict_to_object(i))
|
|
return insts
|
|
|
|
if isinstance(dict_obj, dict):
|
|
inst = _Dict()
|
|
for k, v in dict_obj.items():
|
|
inst[k] = dict_to_object(v)
|
|
return inst
|
|
|
|
return dict_obj
|
|
|
|
|
|
def json_to_object(json_str, req_id=None):
|
|
obj = dict_to_object(json.loads(json_str))
|
|
if obj and isinstance(obj, dict) and req_id:
|
|
obj["req_id"] = req_id
|
|
return obj
|