The queries namespace provides methods for executing natural language queries against your knowledge graphs. It features automatic domain detection, intelligent pipeline routing, and comprehensive result formatting.
Basic Query Execution
Synchronous Queries
from functor_sdk import FunctorClient
client = FunctorClient()
# Simple query
result = client.queries.execute("What is machine learning?")
result = client.queries.execute("What is diabetes?")
for citation in result.citations:
print(f"Source: {citation.source}")
print(f"Type: {citation.source_type}")
print(f"Relevance: {citation.relevance_score}")
print(f"Chunk: {citation.chunk_text[:100]}...")
print(f"Metadata: {citation.metadata}")
print("---")
Advanced Usage Patterns
Batch Queries
# Synchronous batch processing
queries =[
"What is machine learning?",
"What is deep learning?",
"What is natural language processing?"
]
results =[]
for query in queries:
result = client.queries.execute(query)
results.append(result)
# Process results
for i, result inenumerate(results):
print(f"Query {i+1}: {result.answer[:100]}...")
Concurrent Async Queries
import asyncio
from functor_sdk import FunctorClient
asyncdefexecute_queries():
asyncwith FunctorClient()as client:
queries =[
"What is AI?",
"What is ML?",
"What is DL?"
]
# Execute queries concurrently
tasks =[
client.queries.execute_async(query)
for query in queries
]
results =await asyncio.gather(*tasks)
for i, result inenumerate(results):
print(f"Query {i+1}: {result.answer[:100]}...")
asyncio.run(execute_queries())
Query with Error Handling
from functor_sdk import(
FunctorClient,
FunctorAPIError,
FunctorTimeoutError
)
client = FunctorClient()
try:
result = client.queries.execute(
query="What is quantum computing?",
max_results=5,
timeout=60# Custom timeout for complex queries
)
if result.confidence <0.7:
print("Warning: Low confidence answer")
print(f"Answer: {result.answer}")
except FunctorTimeoutError:
print("Query timed out - try a simpler question")
except FunctorAPIError as e:
print(f"Query failed: {e.message}")
Domain-Specific Queries
# Medical queries
medical_result = client.queries.execute(
query="What are the treatment options for hypertension?",
kg_names=["KG_Medical"],
validate_answer=True,
include_citations=True
)
# Technical queries
tech_result = client.queries.execute(
query="How does gradient descent work in neural networks?",
kg_names=["KG_Technical"],
max_results=15
)
# General knowledge queries
general_result = client.queries.execute(
query="What is the history of artificial intelligence?",
kg_names=["KG_Universal"]
)
Performance Optimization
Query Optimization Tips
Be specific: More specific queries yield better results
Use appropriate max_results: Don't request more results than needed
Disable validation for simple queries: Set validate_answer=False for faster responses
Target specific KGs: Use kg_names to search only relevant knowledge graphs
Use async for concurrent operations: Execute multiple queries simultaneously
Example Optimizations
# Optimized for speed
fast_result = client.queries.execute(
query="What is diabetes?",
max_results=3,
validate_answer=False,
include_citations=False
)
# Optimized for accuracy
accurate_result = client.queries.execute(
query="What are the latest treatment protocols for type 2 diabetes?",
max_results=10,
validate_answer=True,
include_citations=True,
kg_names=["KG_Medical"]
)
Common Use Cases
Question Answering
# Direct questions
result = client.queries.execute("What is the capital of France?")
print(result.answer)
# How/Why questions
result = client.queries.execute("How does photosynthesis work?")
print(result.answer)
# Comparison questions
result = client.queries.execute("What's the difference between Python and Java?")
print(result.answer)
Information Retrieval
# List requests
result = client.queries.execute(
query="List all machine learning algorithms",
max_results=20
)
# Specific information
result = client.queries.execute(
query="What are the side effects of metformin?",
kg_names=["KG_Medical"]
)
Research Assistance
# Research questions
result = client.queries.execute(
query="What are the latest developments in quantum computing?",
include_citations=True,
max_results=15
)
# Access sources for further research
for citation in result.citations:
print(f"Source: {citation.source}")
print(f"Relevance: {citation.relevance_score}")
print(f"Text: {citation.chunk_text[:200]}...")
print("---")
Error Handling
Common Error Scenarios
from functor_sdk import(
FunctorClient,
FunctorAPIError,
FunctorAuthenticationError,
FunctorNotFoundError,
FunctorTimeoutError
)
client = FunctorClient()
try:
result = client.queries.execute("What is AI?")
except FunctorAuthenticationError:
print("Authentication failed - check your API key")
except FunctorNotFoundError:
print("No knowledge graphs found")
except FunctorTimeoutError:
print("Query timed out - try a simpler question")
except FunctorAPIError as e:
print(f"API error {e.status_code}: {e.message}")
except Exception as e:
print(f"Unexpected error: {e}")
🆕 Enhanced Query Methods (NEW)
The Functor SDK now includes enhanced query methods with advanced features including intelligent auto-routing, quality filtering, and comprehensive analytics.
Enhanced Smart Query
Execute queries with intelligent auto-routing, quality filtering, and advanced analytics. Returns EnhancedQueryResponse with comprehensive execution metadata.
from functor_sdk import FunctorClient
client = FunctorClient()
# Enhanced smart query with auto-routing
result = client.queries.execute_smart(
query="What is deep learning and how does it relate to neural networks?",