Niansuh commited on
Commit
a649779
·
verified ·
1 Parent(s): 8fbb228

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +17 -7
main.py CHANGED
@@ -151,18 +151,27 @@ async def list_models():
151
  async def chat_completions(
152
  request: ChatRequest, app_secret: str = Depends(verify_app_secret)
153
  ):
 
154
  logger.info(f"Received chat completion request for model: {request.model}")
155
 
 
 
 
156
  if request.model not in [model['id'] for model in ALLOWED_MODELS]:
 
157
  raise HTTPException(
158
  status_code=400,
159
  detail=f"Model {request.model} is not allowed. Allowed models are: {', '.join(model['id'] for model in ALLOWED_MODELS)}",
160
  )
 
 
 
 
161
  # Generate a UUID
162
  original_uuid = uuid.uuid4()
163
  uuid_str = str(original_uuid).replace("-", "")
164
 
165
- # Using the OpenAI API
166
  json_data = {
167
  'prompt': "\n".join(
168
  [
@@ -205,6 +214,9 @@ async def chat_completions(
205
  async def generate():
206
  async with httpx.AsyncClient() as client:
207
  try:
 
 
 
208
  async with client.stream('POST', 'https://sider.ai/api/v3/completion/text', headers=headers, json=json_data, timeout=120.0) as response:
209
  response.raise_for_status()
210
  async for line in response.aiter_lines():
@@ -228,11 +240,14 @@ async def chat_completions(
228
  full_response = ""
229
  async for chunk in generate():
230
  if chunk.startswith("data: ") and not chunk[6:].startswith("[DONE]"):
231
- # print(chunk)
232
  data = json.loads(chunk[6:])
 
 
233
  if data["choices"][0]["delta"].get("content"):
234
  full_response += data["choices"][0]["delta"]["content"]
235
 
 
236
  return {
237
  "id": f"chatcmpl-{uuid.uuid4()}",
238
  "object": "chat.completion",
@@ -247,8 +262,3 @@ async def chat_completions(
247
  ],
248
  "usage": None,
249
  }
250
-
251
-
252
-
253
- if __name__ == "__main__":
254
- uvicorn.run(app, host="0.0.0.0", port=7860)
 
151
  async def chat_completions(
152
  request: ChatRequest, app_secret: str = Depends(verify_app_secret)
153
  ):
154
+ # Log the model requested by the client
155
  logger.info(f"Received chat completion request for model: {request.model}")
156
 
157
+ # Log allowed models for verification purposes
158
+ logger.info(f"Allowed models: {[model['id'] for model in ALLOWED_MODELS]}")
159
+
160
  if request.model not in [model['id'] for model in ALLOWED_MODELS]:
161
+ logger.error(f"Model {request.model} is not allowed.")
162
  raise HTTPException(
163
  status_code=400,
164
  detail=f"Model {request.model} is not allowed. Allowed models are: {', '.join(model['id'] for model in ALLOWED_MODELS)}",
165
  )
166
+
167
+ # Log the JSON payload for the request to the external API
168
+ logger.info(f"Sending request to external API with model: {request.model}")
169
+
170
  # Generate a UUID
171
  original_uuid = uuid.uuid4()
172
  uuid_str = str(original_uuid).replace("-", "")
173
 
174
+ # Prepare json_data for the external request
175
  json_data = {
176
  'prompt': "\n".join(
177
  [
 
214
  async def generate():
215
  async with httpx.AsyncClient() as client:
216
  try:
217
+ # Log request details before making the API call
218
+ logger.info(f"External API request json_data: {json.dumps(json_data, indent=2)}")
219
+
220
  async with client.stream('POST', 'https://sider.ai/api/v3/completion/text', headers=headers, json=json_data, timeout=120.0) as response:
221
  response.raise_for_status()
222
  async for line in response.aiter_lines():
 
240
  full_response = ""
241
  async for chunk in generate():
242
  if chunk.startswith("data: ") and not chunk[6:].startswith("[DONE]"):
243
+ # Parse the chunk data and log it for debugging
244
  data = json.loads(chunk[6:])
245
+ logger.info(f"Chunk data received: {data}")
246
+
247
  if data["choices"][0]["delta"].get("content"):
248
  full_response += data["choices"][0]["delta"]["content"]
249
 
250
+ logger.info(f"Full response generated for model {request.model}: {full_response}")
251
  return {
252
  "id": f"chatcmpl-{uuid.uuid4()}",
253
  "object": "chat.completion",
 
262
  ],
263
  "usage": None,
264
  }