mirror of
https://github.com/xtekky/gpt4free.git
synced 2025-12-06 02:30:41 -08:00
Support "Think Deeper" in Copilot
Improve Documentation
This commit is contained in:
parent
c471c53671
commit
8c2c46b20f
14 changed files with 189 additions and 82 deletions
|
|
@ -24,7 +24,7 @@ from .openai.har_file import get_headers, get_har_files
|
|||
from ..typing import CreateResult, Messages, MediaListType
|
||||
from ..errors import MissingRequirementsError, NoValidHarFileError, MissingAuthError
|
||||
from ..requests.raise_for_status import raise_for_status
|
||||
from ..providers.response import BaseConversation, JsonConversation, RequestLogin, ImageResponse
|
||||
from ..providers.response import BaseConversation, JsonConversation, RequestLogin, ImageResponse, FinishReason, SuggestedFollowups
|
||||
from ..providers.asyncio import get_running_loop
|
||||
from ..tools.media import merge_media
|
||||
from ..requests import get_nodriver
|
||||
|
|
@ -46,10 +46,13 @@ class Copilot(AbstractProvider, ProviderModelMixin):
|
|||
supports_stream = True
|
||||
|
||||
default_model = "Copilot"
|
||||
models = [default_model]
|
||||
models = [default_model, "Think Deeper"]
|
||||
model_aliases = {
|
||||
"gpt-4": default_model,
|
||||
"o1": default_model,
|
||||
"gpt-4o": default_model,
|
||||
"o1": "Think Deeper",
|
||||
"reasoning": "Think Deeper",
|
||||
"dall-e-3": default_model
|
||||
}
|
||||
|
||||
websocket_url = "wss://copilot.microsoft.com/c/api/chat?api-version=2"
|
||||
|
|
@ -75,10 +78,10 @@ class Copilot(AbstractProvider, ProviderModelMixin):
|
|||
) -> CreateResult:
|
||||
if not has_curl_cffi:
|
||||
raise MissingRequirementsError('Install or update "curl_cffi" package | pip install -U curl_cffi')
|
||||
|
||||
model = cls.get_model(model)
|
||||
websocket_url = cls.websocket_url
|
||||
headers = None
|
||||
if cls.needs_auth or media is not None:
|
||||
if cls._access_token:
|
||||
if api_key is not None:
|
||||
cls._access_token = api_key
|
||||
if cls._access_token is None:
|
||||
|
|
@ -163,6 +166,7 @@ class Copilot(AbstractProvider, ProviderModelMixin):
|
|||
# "token": clarity_token,
|
||||
# "method":"clarity"
|
||||
# }).encode(), CurlWsFlag.TEXT)
|
||||
wss.send(json.dumps({"event":"setOptions","supportedCards":["weather","local","image","sports","video","ads","finance"],"ads":{"supportedTypes":["multimedia","product","tourActivity","propertyPromotion","text"]}}));
|
||||
wss.send(json.dumps({
|
||||
"event": "send",
|
||||
"conversationId": conversation_id,
|
||||
|
|
@ -170,7 +174,7 @@ class Copilot(AbstractProvider, ProviderModelMixin):
|
|||
"type": "text",
|
||||
"text": prompt,
|
||||
}],
|
||||
"mode": "chat"
|
||||
"mode": "reasoning" if "Think" in model else "chat",
|
||||
}).encode(), CurlWsFlag.TEXT)
|
||||
|
||||
is_started = False
|
||||
|
|
@ -193,6 +197,10 @@ class Copilot(AbstractProvider, ProviderModelMixin):
|
|||
elif msg.get("event") == "imageGenerated":
|
||||
yield ImageResponse(msg.get("url"), image_prompt, {"preview": msg.get("thumbnailUrl")})
|
||||
elif msg.get("event") == "done":
|
||||
yield FinishReason("stop")
|
||||
break
|
||||
elif msg.get("event") == "suggestedFollowups":
|
||||
yield SuggestedFollowups(msg.get("suggestions"))
|
||||
break
|
||||
elif msg.get("event") == "replaceText":
|
||||
yield msg.get("text")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue