quivr/backend/modules/brain/qa_interface.py
Stan Girard 2c71e0edc7
feat: Add pricing calculation method to GPT4Brain class and update user usage in chat controller (#2210)
This pull request adds a new method called `calculate_pricing` to the
`GPT4Brain` class in the codebase. This method calculates the pricing
for the GPT4Brain model. Additionally, the user usage in the chat
controller has been updated to include the new pricing calculation
method.
2024-02-18 23:05:13 -08:00

42 lines
1.0 KiB
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 calculate_pricing(self):
raise NotImplementedError(
"calculate_pricing is an abstract method and must be implemented"
)
@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"
)