Update api/utils.py
Browse files- api/utils.py +10 -25
api/utils.py
CHANGED
@@ -10,12 +10,13 @@ import httpx
|
|
10 |
from fastapi import HTTPException
|
11 |
from api.config import (
|
12 |
MODEL_MAPPING,
|
|
|
|
|
13 |
BASE_URL,
|
14 |
AGENT_MODE,
|
15 |
TRENDING_AGENT_MODE,
|
16 |
MODEL_PREFIXES,
|
17 |
-
MODEL_REFERERS
|
18 |
-
common_headers
|
19 |
)
|
20 |
from api.models import ChatRequest
|
21 |
from api.logger import setup_logger
|
@@ -78,7 +79,7 @@ def strip_model_prefix(content: str, model_prefix: Optional[str] = None) -> str:
|
|
78 |
logger.debug("No prefix to strip from content.")
|
79 |
return content
|
80 |
|
81 |
-
# Process streaming response with
|
82 |
async def process_streaming_response(request: ChatRequest):
|
83 |
chat_id = generate_chat_id()
|
84 |
logger.info(f"Generated Chat ID: {chat_id}")
|
@@ -89,12 +90,8 @@ async def process_streaming_response(request: ChatRequest):
|
|
89 |
referer_path = MODEL_REFERERS.get(request.model, f"/?model={request.model}")
|
90 |
referer_url = f"{BASE_URL}{referer_path}"
|
91 |
|
92 |
-
#
|
93 |
-
headers_api_chat =
|
94 |
-
**common_headers,
|
95 |
-
'Content-Type': 'application/json',
|
96 |
-
'Referer': referer_url
|
97 |
-
}
|
98 |
|
99 |
# Introduce delay for 'o1-preview' model
|
100 |
if request.model == 'o1-preview':
|
@@ -155,7 +152,7 @@ async def process_streaming_response(request: ChatRequest):
|
|
155 |
logger.error(f"Error occurred during request for Chat ID {chat_id}: {e}")
|
156 |
raise HTTPException(status_code=500, detail=str(e))
|
157 |
|
158 |
-
# Process non-streaming response with
|
159 |
async def process_non_streaming_response(request: ChatRequest):
|
160 |
chat_id = generate_chat_id()
|
161 |
logger.info(f"Generated Chat ID: {chat_id}")
|
@@ -167,21 +164,9 @@ async def process_non_streaming_response(request: ChatRequest):
|
|
167 |
referer_url = f"{BASE_URL}{referer_path}"
|
168 |
chat_url = f"{BASE_URL}/chat/{chat_id}?model={request.model}"
|
169 |
|
170 |
-
#
|
171 |
-
headers_api_chat =
|
172 |
-
|
173 |
-
'Content-Type': 'application/json',
|
174 |
-
'Referer': referer_url
|
175 |
-
}
|
176 |
-
headers_chat = {
|
177 |
-
**common_headers,
|
178 |
-
'Accept': 'text/x-component',
|
179 |
-
'Content-Type': 'text/plain;charset=UTF-8',
|
180 |
-
'Referer': chat_url,
|
181 |
-
'next-action': str(uuid.uuid4()),
|
182 |
-
'next-router-state-tree': json.dumps([""]),
|
183 |
-
'next-url': '/'
|
184 |
-
}
|
185 |
|
186 |
# Introduce delay for 'o1-preview' model
|
187 |
if request.model == 'o1-preview':
|
|
|
10 |
from fastapi import HTTPException
|
11 |
from api.config import (
|
12 |
MODEL_MAPPING,
|
13 |
+
get_headers_api_chat,
|
14 |
+
get_headers_chat,
|
15 |
BASE_URL,
|
16 |
AGENT_MODE,
|
17 |
TRENDING_AGENT_MODE,
|
18 |
MODEL_PREFIXES,
|
19 |
+
MODEL_REFERERS
|
|
|
20 |
)
|
21 |
from api.models import ChatRequest
|
22 |
from api.logger import setup_logger
|
|
|
79 |
logger.debug("No prefix to strip from content.")
|
80 |
return content
|
81 |
|
82 |
+
# Process streaming response with headers from config.py
|
83 |
async def process_streaming_response(request: ChatRequest):
|
84 |
chat_id = generate_chat_id()
|
85 |
logger.info(f"Generated Chat ID: {chat_id}")
|
|
|
90 |
referer_path = MODEL_REFERERS.get(request.model, f"/?model={request.model}")
|
91 |
referer_url = f"{BASE_URL}{referer_path}"
|
92 |
|
93 |
+
# Generate headers for API chat request with dynamic Referer
|
94 |
+
headers_api_chat = get_headers_api_chat(referer_url)
|
|
|
|
|
|
|
|
|
95 |
|
96 |
# Introduce delay for 'o1-preview' model
|
97 |
if request.model == 'o1-preview':
|
|
|
152 |
logger.error(f"Error occurred during request for Chat ID {chat_id}: {e}")
|
153 |
raise HTTPException(status_code=500, detail=str(e))
|
154 |
|
155 |
+
# Process non-streaming response with headers from config.py
|
156 |
async def process_non_streaming_response(request: ChatRequest):
|
157 |
chat_id = generate_chat_id()
|
158 |
logger.info(f"Generated Chat ID: {chat_id}")
|
|
|
164 |
referer_url = f"{BASE_URL}{referer_path}"
|
165 |
chat_url = f"{BASE_URL}/chat/{chat_id}?model={request.model}"
|
166 |
|
167 |
+
# Generate headers for API chat request and chat request with dynamic Referer
|
168 |
+
headers_api_chat = get_headers_api_chat(referer_url)
|
169 |
+
headers_chat = get_headers_chat(chat_url, next_action=str(uuid.uuid4()), next_router_state_tree=json.dumps([""]))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
170 |
|
171 |
# Introduce delay for 'o1-preview' model
|
172 |
if request.model == 'o1-preview':
|