quivr/backend/llm/qa_interface.py
Zineb El Bachiri 742e9bdfba
feat: chat with compositeBrain ( with/out streaming) (#1883)
# DONE

- generate_stream, generate and save answer in BE

# TODO

- Create an intermediary make_streaming_recursive_tool_calls async
function
- Save intermediary answers in new message logs column then fetch and
display in front
2023-12-15 11:43:41 +01:00

36 lines
857 B
Python

from abc import ABC, abstractmethod
from uuid import UUID
from modules.chat.dto.chats import ChatQuestion
class QAInterface(ABC):
"""
Abstract class for all QA interfaces.
This can be used to implement custom answer generation logic.
"""
@abstractmethod
def generate_answer(
self,
chat_id: UUID,
question: ChatQuestion,
save_answer: bool,
*custom_params: tuple
):
raise NotImplementedError(
"generate_answer is an abstract method and must be implemented"
)
@abstractmethod
def generate_stream(
self,
chat_id: UUID,
question: ChatQuestion,
save_answer: bool,
*custom_params: tuple
):
raise NotImplementedError(
"generate_stream is an abstract method and must be implemented"
)