Add data source ids to copilot request

This commit is contained in:
akhisud3195 2025-05-12 20:40:02 +05:30
parent 9c712250fb
commit 462a2fb651
5 changed files with 70 additions and 13 deletions

View file

@ -1,5 +1,5 @@
from flask import Flask, request, jsonify, Response, stream_with_context
from pydantic import BaseModel, ValidationError
from pydantic import BaseModel, ValidationError, Field
from typing import List, Optional
from copilot import UserMessage, AssistantMessage, get_response
from streaming import get_streaming_response
@ -10,6 +10,7 @@ from copilot import copilot_instructions_edit_agent
import json
class DataSource(BaseModel):
id: str = Field(alias='_id')
name: str
description: Optional[str] = None
active: bool = True
@ -17,6 +18,9 @@ class DataSource(BaseModel):
error: Optional[str] = None
data: dict # The discriminated union based on type
class Config:
populate_by_name = True
class ApiRequest(BaseModel):
messages: List[UserMessage | AssistantMessage]
workflow_schema: str
@ -61,7 +65,10 @@ def health():
@require_api_key
def chat_stream():
try:
request_data = ApiRequest(**request.json)
raw_data = request.json
print(f"Raw request JSON: {json.dumps(raw_data)}")
request_data = ApiRequest(**raw_data)
print(f"received /chat_stream request: {request_data}")
validate_request(request_data)