Semantic Search enables you to find relevant information in your context graph using natural language queries. Unlike keyword-based search, it understands meaning and context:
Meaning-Based: Finds conceptually related content, not just exact matches
Fast: Vector similarity search for quick results
Flexible: Works across different entity types and properties
Scored: Returns results with similarity scores for ranking
Semantic Search is ideal for finding information when you know what you’re looking for conceptually but don’t have exact keywords. It’s particularly useful for documentation, logs, and unstructured data.
Semantic Search converts your query and graph content into high-dimensional vectors (embeddings) that represent semantic meaning. Similar concepts have similar vectors, enabling meaning-based search.
from kubiya import ControlPlaneClientclient = ControlPlaneClient(api_key="your-api-key")# Search for relevant contentresults = client.graph.semantic_search( query="production incidents last week", limit=10)print(f"Found {len(results)} relevant items")for result in results: print(f"[{result['similarity_score']:.2f}] {result['content'][:100]}...")
Example Response
Copy
Ask AI
[ { "node_id": "incident-2024-001", "content": "Production database outage in us-east-1 region affecting authentication service. Resolved after 45 minutes by scaling up read replicas.", "similarity_score": 0.87, "metadata": { "timestamp": "2024-12-05T14:30:00Z", "severity": "high", "service": "auth-db" } }, { "node_id": "incident-2024-002", "content": "API gateway experiencing elevated error rates in production. Issue traced to rate limiting configuration.", "similarity_score": 0.82, "metadata": { "timestamp": "2024-12-07T09:15:00Z", "severity": "medium", "service": "api-gateway" } }]
from kubiya import ControlPlaneClientclient = ControlPlaneClient(api_key="your-api-key")# Get top 3 most relevant resultstop_results = client.graph.semantic_search( query="cost optimization opportunities", limit=3)for i, result in enumerate(top_results, 1): print(f"{i}. [{result['similarity_score']:.2f}] {result['content']}")
from kubiya import ControlPlaneClientdef find_similar_resources( client: ControlPlaneClient, resource_description: str, limit: int = 5): """Find resources similar to a description.""" results = client.graph.semantic_search( query=resource_description, limit=limit ) print(f"=== Similar Resources ===") for result in results: print(f"\nSimilarity: {result['similarity_score']:.2f}") print(f"Content: {result['content']}") if result.get('metadata'): print(f"Metadata: {result['metadata']}") return results# Usageclient = ControlPlaneClient(api_key="your-api-key")# Find resources similar to a descriptionsimilar = find_similar_resources( client, "Load balancer handling HTTPS traffic for web application", limit=5)
from kubiya import ControlPlaneClientfrom datetime import datetimedef find_related_incidents( client: ControlPlaneClient, incident_description: str, limit: int = 10): """Find historical incidents related to current issue.""" results = client.graph.semantic_search( query=incident_description, limit=limit, filters={ "labels": ["Incident"], "properties": { "resolved": True } } ) print(f"=== Related Historical Incidents ===") print(f"Query: {incident_description}\n") for i, result in enumerate(results, 1): print(f"{i}. Similarity: {result['similarity_score']:.2f}") print(f" {result['content']}") if 'metadata' in result: resolution_time = result['metadata'].get('resolution_time', 'N/A') root_cause = result['metadata'].get('root_cause', 'N/A') print(f" Resolution Time: {resolution_time}") print(f" Root Cause: {root_cause}") print() return results# Usageclient = ControlPlaneClient(api_key="your-api-key")related = find_related_incidents( client, "API service returning 500 errors under high load", limit=5)# Extract patternsif related: print("Common resolution patterns:") for result in related[:3]: if 'metadata' in result and 'resolution' in result['metadata']: print(f" - {result['metadata']['resolution']}")
from kubiya import ControlPlaneClientdef search_knowledge_base( client: ControlPlaneClient, question: str) -> Dict: """Search knowledge base for answers to questions.""" results = client.graph.semantic_search( query=question, limit=5, filters={ "labels": ["Documentation", "Runbook"] } ) if not results: return { "answer": "No relevant documentation found", "sources": [] } # Return top result as answer top_result = results[0] print(f"=== Knowledge Base Search ===") print(f"Question: {question}") print(f"Confidence: {top_result['similarity_score']:.2f}") print(f"\nAnswer:") print(top_result['content']) if len(results) > 1: print(f"\nRelated Articles:") for result in results[1:]: print(f" [{result['similarity_score']:.2f}] {result['content'][:100]}...") return { "answer": top_result['content'], "confidence": top_result['similarity_score'], "sources": results }# Usageclient = ControlPlaneClient(api_key="your-api-key")# Search for proceduresanswer = search_knowledge_base( client, "How do I roll back a production deployment?")# Search for troubleshooting guidesanswer = search_knowledge_base( client, "What to do when the database is slow?")
# ❌ BAD - Too vagueresults = client.graph.semantic_search(query="error", limit=10)# ✅ GOOD - Specific and descriptiveresults = client.graph.semantic_search( query="database connection timeout errors in production environment", limit=10)
results = client.graph.semantic_search( query="kubernetes deployment issues", limit=50)# Only use high-confidence resultsrelevant = [r for r in results if r['similarity_score'] > 0.7]print(f"High confidence results: {len(relevant)}/{len(results)}")