mirror of
https://github.com/xtekky/gpt4free.git
synced 2025-12-06 02:30:41 -08:00
feat: improve media handling, file conversion, and error management
- Added UUID-based "x-xai-request-id" header and 403 error handling in Grok.py - Updated backend_api.py to handle empty media results and unsupported file types with error raising and file cleanup - Simplified render logic in website.py by removing is_live flag and related code - Changed "audio/wav" MIME type to "audio/x-wav" in image/__init__.py - Added is_valid_media and is_valid_audio functions to image/__init__.py for stricter media validation - Enhanced MarkItDown integration in markitdown/__init__.py with convert_stream method supporting non-seekable streams - Modified _transcribe_audio.py to use recognize_faster_whisper if available, fallback to recognize_google - Updated providers/helper.py to prioritize "text" key in to_string function - Improved stream_read_files in files.py to skip DOWNLOADS_FILE and adjust code block formatting - Added get_filename_from_url utility in files.py for consistent filename generation from URLs - Enhanced download_urls in files.py to use MarkItDown for URL conversion and improved error logging - Improved render_part and related functions in media.py to use new media validation logic and handle more cases - Adjusted merge_media and render_messages in media.py for stricter part filtering and validation
This commit is contained in:
parent
9936c56644
commit
9461949542
9 changed files with 140 additions and 36 deletions
|
|
@ -4,6 +4,7 @@ import os
|
|||
import json
|
||||
import time
|
||||
import asyncio
|
||||
import uuid
|
||||
from typing import Dict, Any, AsyncIterator
|
||||
|
||||
try:
|
||||
|
|
@ -13,8 +14,9 @@ except ImportError:
|
|||
|
||||
from ...typing import Messages, AsyncResult
|
||||
from ...providers.response import JsonConversation, Reasoning, ImagePreview, ImageResponse, TitleGeneration, AuthResult, RequestLogin
|
||||
from ...requests import StreamSession, get_nodriver, DEFAULT_HEADERS
|
||||
from ...requests import StreamSession, get_nodriver, DEFAULT_HEADERS, merge_cookies
|
||||
from ...requests.raise_for_status import raise_for_status
|
||||
from ...errors import MissingAuthError
|
||||
from ..base_provider import AsyncAuthedProvider, ProviderModelMixin
|
||||
from ..helper import format_prompt, get_last_user_message
|
||||
|
||||
|
|
@ -112,7 +114,10 @@ class Grok(AsyncAuthedProvider, ProviderModelMixin):
|
|||
url = f"{cls.conversation_url}/new"
|
||||
else:
|
||||
url = f"{cls.conversation_url}/{conversation_id}/responses"
|
||||
async with session.post(url, json=payload) as response:
|
||||
async with session.post(url, json=payload, headers={"x-xai-request-id": str(uuid.uuid4())}) as response:
|
||||
if response.status == 403:
|
||||
raise MissingAuthError("Invalid secrets")
|
||||
auth_result.cookies = merge_cookies(auth_result.cookies, response)
|
||||
await raise_for_status(response)
|
||||
thinking_duration = None
|
||||
async for line in response.iter_lines():
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue