AI & LLM Integration
Surgewave provides native connectors for AI/LLM workloads, enabling real-time AI pipelines, RAG (Retrieval-Augmented Generation) systems, and multi-agent architectures.
Overview
Surgewave's AI connectors enable:
- Embedding Generation - Convert text to vectors using OpenAI or local models (Ollama)
- LLM Processing - Enrich messages with AI-generated content
- Vector Storage - Store embeddings in vector databases (Qdrant, pgvector)
- Agent Communication - Event-driven multi-agent architectures
Available Connectors
LLM Providers
| Connector | Embeddings | Completions | Description |
|---|---|---|---|
| OpenAI | Yes | Yes | OpenAI API and compatible providers (Azure OpenAI) |
| Ollama | Yes | Yes | Local LLM inference with no API costs |
Vector Databases
| Connector | Description |
|---|---|
| Qdrant | High-performance vector database with filtering |
| PostgreSQL pgvector | Vector extension for PostgreSQL |
Architecture
flowchart TB
subgraph Cluster["Surgewave Cluster"]
Docs[documents topic]
Embs[embeddings topic]
Enr[enriched-docs topic]
end
OpenAI["OpenAI Connector (embeddings)"]
Qdrant["Qdrant Connector (vectors)"]
App[App Consumer]
Docs --> OpenAI --> Qdrant
Embs --> Qdrant
Enr --> App
Use Cases
RAG Pipeline
Stream documents through embedding generation and into a vector database for AI retrieval:
{
"connectors": [
{
"name": "embed-documents",
"config": {
"connector.class": "OpenAISinkConnector",
"mode": "embeddings",
"input.field": "content",
"output.field": "embedding",
"topics": "documents"
}
},
{
"name": "store-vectors",
"config": {
"connector.class": "QdrantSinkConnector",
"collection": "documents",
"vector.field": "embedding",
"topics": "embeddings"
}
}
]
}
Content Enrichment
Add AI-generated summaries, classifications, or translations to streaming data:
{
"name": "summarize-articles",
"config": {
"connector.class": "OllamaSinkConnector",
"mode": "completions",
"completions.model": "llama3",
"system.prompt": "Summarize this article in 2 sentences:",
"input.field": "body",
"output.field": "summary",
"topics": "articles"
}
}
Multi-Agent Systems
Use Surgewave as the communication backbone for AI agents:
flowchart LR
A[Agent A] -->|publish| T1[Surgewave Topic]
T1 -->|consume| B[Agent B]
B -->|publish| T2[Surgewave Topic]
T2 -->|consume| A
See Agent Integration for detailed patterns.
Quick Start
1. Generate Embeddings with OpenAI
surgewave connect create openai-embeddings --config '{
"connector.class": "OpenAISinkConnector",
"openai.api.key": "${OPENAI_API_KEY}",
"mode": "embeddings",
"topics": "documents"
}'
2. Use Local LLM with Ollama
# Start Ollama locally
ollama serve
# Create connector
surgewave connect create ollama-summaries --config '{
"connector.class": "OllamaSinkConnector",
"ollama.base.url": "http://localhost:11434",
"mode": "completions",
"completions.model": "llama3",
"topics": "articles"
}'
3. Store Vectors in Qdrant
surgewave connect create qdrant-vectors --config '{
"connector.class": "QdrantSinkConnector",
"qdrant.host": "localhost",
"qdrant.port": "6334",
"collection": "documents",
"topics": "embeddings"
}'
Configuration Reference
Common Options
| Option | Type | Default | Description |
|---|---|---|---|
topics |
string | Required | Input topics (comma-separated) |
mode |
string | embeddings | Processing mode: embeddings or completions |
input.field |
string | text | JSON field containing input text |
output.field |
string | embedding | JSON field for output |
batch.size |
int | 100 | Records to batch before processing |
retry.max |
int | 3 | Maximum retry attempts |
retry.backoff.ms |
int | 1000 | Backoff between retries |
Next Steps
- OpenAI Connector - Cloud LLM integration
- Ollama Connector - Local LLM inference
- Qdrant Connector - Vector database storage
- Guardrails - Content safety (PII, toxicity, prompt injection)
- Agent Memory - Persistent agent memory and tool caching
- Pipeline Chat - Interactive chat with AI pipelines
- Agent Integration - Multi-agent architectures