from upsonic import Agent, Task, KnowledgeBase
from upsonic.embeddings import OpenAIEmbedding, OpenAIEmbeddingConfig
from upsonic.vectordb import ChromaProvider, ChromaConfig, ConnectionConfig, Mode
# Step 1: Setup embedding provider
embedding = OpenAIEmbedding(OpenAIEmbeddingConfig(
model_name="text-embedding-3-small"
))
# Step 2: Setup vector database
vectordb = ChromaProvider(ChromaConfig(
collection_name="my_rag_kb",
vector_size=1536,
connection=ConnectionConfig(
mode=Mode.EMBEDDED,
db_path="./rag_database"
)
))
# Step 3: Create knowledge base with documents
kb = KnowledgeBase(
sources=["document.pdf"],
embedding_provider=embedding,
vectordb=vectordb
)
# Step 4: Create agent
agent = Agent("openai/gpt-4o")
# Step 5: Create task with knowledge base context
task = Task(
description="What are the main topics discussed in the document?",
context=[kb]
)
# Step 6: Execute and get results
result = agent.do(task)
print(result)