from upsonic import Agent, Task, KnowledgeBase
from upsonic.embeddings import OpenAIEmbedding, OpenAIEmbeddingConfig
from upsonic.vectordb import FaissProvider, FaissConfig, HNSWIndexConfig
# Setup embedding provider
embedding = OpenAIEmbedding(OpenAIEmbeddingConfig())
# Create FAISS configuration
config = FaissConfig(
collection_name="my_collection",
vector_size=1536,
db_path="./faiss_db",
index=HNSWIndexConfig(m=16, ef_construction=200),
normalize_vectors=True
)
vectordb = FaissProvider(config)
# Create knowledge base
kb = KnowledgeBase(
sources="document.pdf",
embedding_provider=embedding,
vectordb=vectordb
)
# Use with Agent
agent = Agent("anthropic/claude-sonnet-4-5")
task = Task(
description="Search the documents",
context=[kb]
)
result = agent.do(task)