Spaces:
Runtime error
Runtime error
from typing import Optional | |
from phi.assistant import Assistant | |
from phi.knowledge import AssistantKnowledge | |
from phi.llm.groq import Groq | |
from phi.embedder.openai import OpenAIEmbedder | |
from phi.embedder.ollama import OllamaEmbedder | |
from phi.vectordb.pgvector import PgVector2 | |
from phi.storage.assistant.postgres import PgAssistantStorage | |
db_url = "postgresql+psycopg://ai:ai@localhost:5532/ai" | |
def get_groq_assistant( | |
llm_model: str = "llama3-70b-8192", | |
embeddings_model: str = "text-embedding-3-small", | |
user_id: Optional[str] = None, | |
run_id: Optional[str] = None, | |
debug_mode: bool = True, | |
) -> Assistant: | |
"""Get a Groq RAG Assistant.""" | |
# Define the embedder based on the embeddings model | |
embedder = ( | |
OllamaEmbedder(model=embeddings_model, dimensions=768) | |
if embeddings_model == "nomic-embed-text" | |
else OpenAIEmbedder(model=embeddings_model, dimensions=1536) | |
) | |
# Define the embeddings table based on the embeddings model | |
embeddings_table = ( | |
"groq_rag_documents_ollama" if embeddings_model == "nomic-embed-text" else "groq_rag_documents_openai" | |
) | |
return Assistant( | |
name="groq_rag_assistant", | |
run_id=run_id, | |
user_id=user_id, | |
llm=Groq(model=llm_model), | |
storage=PgAssistantStorage(table_name="groq_rag_assistant", db_url=db_url), | |
knowledge_base=AssistantKnowledge( | |
vector_db=PgVector2( | |
db_url=db_url, | |
collection=embeddings_table, | |
embedder=embedder, | |
), | |
# 2 references are added to the prompt | |
num_documents=2, | |
), | |
description="You are an AI called 'GroqRAG' and your task is to answer questions using the provided information", | |
instructions=[ | |
"When a user asks a question, you will be provided with information about the question.", | |
"Carefully read this information and provide a clear and concise answer to the user.", | |
"Do not use phrases like 'based on my knowledge' or 'depending on the information'.", | |
], | |
# This setting adds references from the knowledge_base to the user prompt | |
add_references_to_prompt=True, | |
# This setting tells the LLM to format messages in markdown | |
markdown=True, | |
# This setting adds chat history to the messages | |
add_chat_history_to_messages=True, | |
# This setting adds 4 previous messages from chat history to the messages | |
num_history_messages=4, | |
add_datetime_to_instructions=True, | |
debug_mode=debug_mode, | |
) | |