Spaces:
Build error
Build error
| from literalai import LiteralClient | |
| import os | |
| from .base import ChatProcessorBase | |
| class LiteralaiChatProcessor(ChatProcessorBase): | |
| def __init__(self, tags=None): | |
| self.literal_client = LiteralClient(api_key=os.getenv("LITERAL_API_KEY")) | |
| self.literal_client.reset_context() | |
| with self.literal_client.thread(name="TEST") as thread: | |
| self.thread_id = thread.id | |
| self.thread = thread | |
| if tags is not None and type(tags) == list: | |
| self.thread.tags = tags | |
| print(f"Thread ID: {self.thread}") | |
| def process(self, user_message, assistant_message, source_dict): | |
| with self.literal_client.thread(thread_id=self.thread_id) as thread: | |
| self.literal_client.message( | |
| content=user_message, | |
| type="user_message", | |
| name="User", | |
| ) | |
| self.literal_client.message( | |
| content=assistant_message, | |
| type="assistant_message", | |
| name="AI_Tutor", | |
| ) | |
| async def rag(self, user_query: str, chain, cb): | |
| with self.literal_client.step( | |
| type="retrieval", name="RAG", thread_id=self.thread_id | |
| ) as step: | |
| step.input = {"question": user_query} | |
| res = await chain.acall(user_query, callbacks=[cb]) | |
| step.output = res | |
| return res | |