quivr/backend/modules/chat/dto/inputs.py
Stan Girard b7ff2e77af
feat(citations): system added (#2498)
# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):
2024-04-26 08:11:01 -07:00

47 lines
1.0 KiB
Python

from dataclasses import dataclass
from typing import Optional
from uuid import UUID
from pydantic import BaseModel
class CreateChatHistory(BaseModel):
chat_id: UUID
user_message: str
assistant: str
prompt_id: Optional[UUID] = None
brain_id: Optional[UUID] = None
metadata: Optional[dict] = {}
class QuestionAndAnswer(BaseModel):
question: str
answer: str
@dataclass
class CreateChatProperties:
name: str
def __init__(self, name: str):
self.name = name
@dataclass
class ChatUpdatableProperties:
chat_name: Optional[str] = None
def __init__(self, chat_name: Optional[str]):
self.chat_name = chat_name
class ChatMessageProperties(BaseModel, extra="ignore"):
thumbs: Optional[bool]
def dict(self, *args, **kwargs):
chat_dict = super().dict(*args, **kwargs)
if chat_dict.get("thumbs"):
# Set thumbs to boolean value or None if not present
chat_dict["thumbs"] = bool(chat_dict["thumbs"])
return chat_dict