feat: 添加搜索模型配置并改进Markdown链接处理

在Dockerfile中添加SEARCH_MODELS环境变量,支持gemini-2.0-flash-exp和gemini-2.0-pro-exp模型
改进message_converter中的图片链接正则表达式
This commit is contained in:
snaily
2025-03-19 19:56:50 +08:00
parent 21444ed6c7
commit 8ca62707ea
3 changed files with 4 additions and 3 deletions
+1
View File
@@ -12,6 +12,7 @@ ENV ALLOWED_TOKENS='["your_token_1"]'
ENV BASE_URL=https://generativelanguage.googleapis.com/v1beta ENV BASE_URL=https://generativelanguage.googleapis.com/v1beta
ENV TOOLS_CODE_EXECUTION_ENABLED=false ENV TOOLS_CODE_EXECUTION_ENABLED=false
ENV IMAGE_MODELS='["gemini-2.0-flash-exp"]' ENV IMAGE_MODELS='["gemini-2.0-flash-exp"]'
ENV SEARCH_MODELS='["gemini-2.0-flash-exp","gemini-2.0-pro-exp"]'
# Expose port # Expose port
EXPOSE 8000 EXPOSE 8000
+2 -2
View File
@@ -7,7 +7,7 @@ import requests
import base64 import base64
SUPPORTED_ROLES = ["user", "model", "system"] SUPPORTED_ROLES = ["user", "model", "system"]
IMAGE_URL_PATTERN = r'\[image\]\((.*?)\)' IMAGE_URL_PATTERN = r'\[(.*?)\]\((.*?)\)'
class MessageConverter(ABC): class MessageConverter(ABC):
@@ -87,7 +87,7 @@ def _process_text_with_image(text: str) -> List[Dict[str, Any]]:
img_url_match = re.search(IMAGE_URL_PATTERN, text) img_url_match = re.search(IMAGE_URL_PATTERN, text)
if img_url_match: if img_url_match:
# 提取URL # 提取URL
img_url = img_url_match.group(1) img_url = img_url_match.group(2)
# 将URL对应的图片转换为base64 # 将URL对应的图片转换为base64
try: try:
base64_data = _convert_image_to_base64(img_url) base64_data = _convert_image_to_base64(img_url)
+1 -1
View File
@@ -205,7 +205,7 @@ def _extract_image_data(part: dict) -> str:
current_date = time.strftime("%Y/%m/%d") current_date = time.strftime("%Y/%m/%d")
filename = f"{current_date}/{uuid.uuid4().hex[:8]}.png" filename = f"{current_date}/{uuid.uuid4().hex[:8]}.png"
base64_data = part["inlineData"]["data"] base64_data = part["inlineData"]["data"]
#将base64_data转成bytes数组 #将base64_data转成bytes数组
bytes_data = base64.b64decode(base64_data) bytes_data = base64.b64decode(base64_data)
upload_response = image_uploader.upload(bytes_data,filename) upload_response = image_uploader.upload(bytes_data,filename)
if upload_response.success: if upload_response.success: