Spaces:
Running
Running
File size: 1,465 Bytes
1333c38 1bc6a5b 1333c38 1bc6a5b 1333c38 1bc6a5b 1333c38 1bc6a5b 1333c38 1bc6a5b 1333c38 1bc6a5b 1333c38 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
from pydantic import BaseModel, Field
from typing import List, Optional, Dict, Any
from datetime import datetime
# Source information model
class SourceInfo(BaseModel):
id: str
name: str
category: str
price: str
similarity_score: float
# Chat request and response models
class ChatRequest(BaseModel):
message: str
conversation_id: Optional[str] = None
class ChatResponse(BaseModel):
response: str
sources: List[SourceInfo] # Changed from List[str] to List[SourceInfo]
suggested_questions: List[str]
conversation_id: Optional[str] = None # Make this optional
# Product models
class Product(BaseModel):
id: str
name: str
category: str
description: str
price: float
image_url: Optional[str] = None
tags: List[str] = []
class SearchRequest(BaseModel):
query: str
category: Optional[str] = None
limit: int = 20
# Conversation models
class ChatMessage(BaseModel):
role: str # "user" or "assistant"
content: str
timestamp: datetime
class Conversation(BaseModel):
id: str
user_id: str
messages: List[ChatMessage]
created_at: datetime
updated_at: datetime
# Knowledge base models
class Document(BaseModel):
content: str
metadata: Dict[str, Any] = {}
source: str = "upload"
class KnowledgeDocument(BaseModel):
id: str
content: str
embedding: List[float]
metadata: Dict[str, Any]
source: str
created_at: datetime |