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

29 lines
970 B
Python
Executable File

import os
from typing import Tuple
try:
import torch
from transformers import AutoModel, AutoTokenizer
from transformers.tokenization_utils import PreTrainedTokenizer
except ImportError:
raise ImportError("Please make sure to install torch and transformers: "
"\n pip install torch~=1.13 \n pip install transformers~=4.30.2")
def get_bottom_model(model_id: str) -> Tuple["PreTrainedTokenizer", "torch.nn.Embedding"]:
"""
Load the specified pre-trained model from huggingface and save the embedding model and tokenizer
:param model_id: id of pre-trained model
:return None
"""
model = AutoModel.from_pretrained(model_id, trust_remote_code=True)
# Search the embedding layer
for name, module in model.named_modules():
if isinstance(module, torch.nn.Embedding):
break
tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
return tokenizer, module