llm-agent-factory / examples.py
bridges-optimal-55's picture
Initial commit
505aa09
"""
Examples of using LLM Agent Factory programmatically.
This file demonstrates how to use the retrieval and RAG systems
in your own Python code.
Key concepts:
- Retrieval = Search for existing agents in the database
- RAG = Generate new agents using LLM based on similar agents
- Quick API = Simple functions for quick start (quick_search, quick_generate)
- Advanced API = Full control over configuration
"""
from retrieval import (
AgentRAG,
AgentRetriever,
DatasetType,
EmbeddingModel,
LLMConfig,
RAGConfig,
RetrievalConfig,
quick_search,
)
def example_0_quick_api():
"""Example 0: Quick API - simplest way to use the library."""
# Quick search - no configuration needed
results = quick_search("Python programming expert", top_k=3)
for _result in results:
pass
# Quick generate - minimal configuration
# agents = quick_generate(
# "code review assistant for Python",
# api_key="your-api-key"
# )
# print(f"Generated: {agents[0]['display_name']}")
def example_1_basic_search():
"""Example 1: Basic agent search (retrieval only)."""
# Create retrieval configuration
config = RetrievalConfig(
dataset_type=DatasetType.ENG,
embedding_model=EmbeddingModel.BGE_SMALL.value,
top_k=3,
)
# Create and initialize retriever
retriever = AgentRetriever(config)
retriever.initialize()
# Search for agents
results = retriever.search("I need help with Python programming")
# Print results
for _result in results:
pass
def example_2_search_with_reranking():
"""Example 2: Search with two-stage retrieval (reranking)."""
config = RetrievalConfig(
dataset_type=DatasetType.ENG,
embedding_model=EmbeddingModel.BGE_BASE.value,
use_reranker=True, # Enable two-stage retrieval
rerank_top_k=20, # First retrieve 20 candidates
top_k=5, # Then rerank and return top 5
)
retriever = AgentRetriever(config)
retriever.initialize()
results = retriever.search("data analysis and visualization expert")
for result in results:
if result.rerank_score is not None:
pass
def example_3_multilingual_search():
"""Example 3: Multilingual search across all datasets."""
config = RetrievalConfig(
dataset_type=DatasetType.ALL, # Use all datasets
embedding_model=EmbeddingModel.BGE_M3.value, # Multilingual model
top_k=5,
)
retriever = AgentRetriever(config)
retriever.initialize()
# Search in English
results = retriever.search("Python programming assistant")
for _result in results:
pass
def example_4_basic_rag_generation():
"""Example 4: Generate a new agent using RAG."""
# Configure LLM (replace with your actual settings)
llm_config = LLMConfig(
model="gpt-oss",
base_url="https://your-llm-api.com/v1",
api_key="your-api-key",
temperature=0.7,
)
# Create RAG configuration
config = RAGConfig.with_dataset(
dataset_type=DatasetType.ENG,
llm=llm_config,
num_agents_to_return=1,
num_retrieved_for_context=5,
)
# Create and initialize RAG
rag = AgentRAG(config)
rag.initialize()
# Generate agent
agents = rag.generate("I need an agent for automated code review in TypeScript")
# Print generated agent
for _agent in agents:
pass
def example_5_generate_multiple_agents():
"""Example 5: Generate multiple agent variants."""
llm_config = LLMConfig(
model="gpt-oss",
base_url="https://your-llm-api.com/v1",
api_key="your-api-key",
temperature=0.9, # Higher temperature for more variety
)
config = RAGConfig.with_dataset(
dataset_type=DatasetType.ENG,
llm=llm_config,
num_agents_to_return=3, # Generate 3 variants
num_retrieved_for_context=10,
)
rag = AgentRAG(config)
rag.initialize()
agents = rag.generate("customer support specialist for SaaS product")
for _i, _agent in enumerate(agents, 1):
pass
def example_6_rag_with_retrieval():
"""Example 6: Use RAG for both search and generation."""
llm_config = LLMConfig(
model="gpt-oss",
base_url="https://your-llm-api.com/v1",
api_key="your-api-key",
temperature=0.7,
)
config = RAGConfig.with_dataset(
dataset_type=DatasetType.ENG,
llm=llm_config,
)
rag = AgentRAG(config)
rag.initialize()
query = "machine learning model deployment expert"
# First, search for similar agents
similar = rag.search_only(query, top_k=3)
for _result in similar:
pass
# Then, generate a new customized agent
agents = rag.generate(query)
agents[0]
def example_7_switch_datasets():
"""Example 7: Switch between datasets dynamically."""
config = RetrievalConfig(
dataset_type=DatasetType.ENG,
embedding_model=EmbeddingModel.BGE_M3.value,
top_k=3,
)
retriever = AgentRetriever(config)
retriever.initialize()
# Search in English dataset
retriever.search("coding assistant")
# Switch to all datasets
retriever.switch_dataset(DatasetType.ALL)
retriever.initialize()
retriever.search("programming assistant")
# Switch to all datasets
retriever.switch_dataset(DatasetType.ALL)
retriever.initialize()
retriever.search("coding assistant")
def example_8_get_statistics():
"""Example 8: Get dataset statistics."""
config = RetrievalConfig(
dataset_type=DatasetType.ALL,
)
retriever = AgentRetriever(config)
retriever.initialize()
if __name__ == "__main__":
# Run examples
# Note: Some examples require LLM configuration and may fail without proper setup
try:
# Quick API - recommended for beginners
example_0_quick_api()
# These examples work without LLM
example_1_basic_search()
example_2_search_with_reranking()
example_3_multilingual_search()
example_7_switch_datasets()
example_8_get_statistics()
# These examples require LLM configuration
# Uncomment if you have configured LLM
# example_4_basic_rag_generation()
# example_5_generate_multiple_agents()
# example_6_rag_with_retrieval()
except Exception:
pass