返回提交历史
Modified
g4f/Provider/Copilot.py
+8
-4
XFEstudio/gpt4free
Implement bucket attachments support in Copilot provider
Co-authored-by: hlohaus <983577+hlohaus@users.noreply.github.com>
fa0e37cf
代码差异
1 个文件
+8
-4
@@ -20,7 +20,7 @@ except ImportError:
20
20
has_nodriver = False
21
21
22
22
from .base_provider import AsyncAuthedProvider, ProviderModelMixin
23
from .helper import format_prompt_max_length
23
from .helper import format_prompt_max_length, render_messages
24
24
from .openai.har_file import get_headers, get_har_files
25
25
from ..typing import AsyncResult, Messages, MediaListType
26
26
from ..errors import MissingRequirementsError, NoValidHarFileError, MissingAuthError
@@ -140,24 +140,28 @@ class Copilot(AsyncAuthedProvider, ProviderModelMixin):
140
140
cls._access_token = None
141
141
else:
142
142
debug.log(f"Copilot: User: {user}")
143
# Process messages to include bucket content once
144
rendered_messages = list(render_messages(messages))
145
143
146
if conversation is None:
144
147
response = await session.post(cls.conversation_url)
145
148
response.raise_for_status()
146
149
conversation_id = response.json().get("id")
147
150
conversation = Conversation(conversation_id)
148
151
if prompt is None:
149
prompt = format_prompt_max_length(messages, 10000)
152
prompt = format_prompt_max_length(rendered_messages, 10000)
150
153
debug.log(f"Copilot: Created conversation: {conversation_id}")
151
154
else:
152
155
conversation_id = conversation.conversation_id
153
156
if prompt is None:
154
prompt = get_last_user_message(messages)
157
prompt = get_last_user_message(rendered_messages)
155
158
debug.log(f"Copilot: Use conversation: {conversation_id}")
156
159
if return_conversation:
157
160
yield conversation
158
161
159
162
uploaded_images = []
160
for media, _ in merge_media(media, messages):
163
# Use rendered messages for media processing to ensure consistency
164
for media, _ in merge_media(media, rendered_messages):
161
165
if not isinstance(media, str):
162
166
data = to_bytes(media)
163
167
response = await session.post(