Niansuh commited on
Commit
e1b2c3b
·
verified ·
1 Parent(s): 9849586

Update api/utils.py

Browse files
Files changed (1) hide show
  1. 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 combined headers
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
- # Combined headers for API chat
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 combined headers
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
- # Combined headers for API chat and chat request
171
- headers_api_chat = {
172
- **common_headers,
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':