Use Fireworks AI's optimized inference for CortexDB embeddings and entity extraction.
Fireworks AI Provider
Run CortexDB's embedding and entity-extraction pipelines on Fireworks AI's optimized inference infrastructure.
Overview
Fireworks AI provides fast, cost-efficient inference for open-source models with production-grade reliability. This integration configures CortexDB to use Fireworks AI for:
- Embedding generation — optimized open-source embedding models
- Entity extraction — fast chat model inference for relationship extraction
Installation
pip install cortexdb-fireworks
Configuration
| Environment Variable | Default | Description |
|---|---|---|
| CORTEX_FIREWORKS_API_KEY | Required | Fireworks AI API key |
| CORTEX_FIREWORKS_EMBED_MODEL | nomic-ai/nomic-embed-text-v1.5 | Embedding model |
| CORTEX_FIREWORKS_CHAT_MODEL | accounts/fireworks/models/llama-v3p1-70b-instruct | Chat model |
Embedding Models
| Model | Dimensions | Description |
|---|---|---|
| nomic-ai/nomic-embed-text-v1.5 | 768 | High-quality, long-context embedding model by Nomic |
| thenlper/gte-large | 1024 | General Text Embeddings by Alibaba DAMO |
Usage Example
from cortexdb_fireworks import FireworksEmbeddingProvider, FireworksConfig
config = FireworksConfig(api_key="your-fireworks-api-key")
async with FireworksEmbeddingProvider(config=config) as provider:
embedding = await provider.embed_query("What is event sourcing?")
print(f"Dimension: {provider.dimension}") # 768
embeddings = await provider.embed([
"Event sourcing stores all changes as events.",
"CQRS separates reads from writes.",
])
Using a Different Model
config = FireworksConfig(
api_key="your-fireworks-api-key",
embed_model="thenlper/gte-large",
)
provider = FireworksEmbeddingProvider(config=config)
# provider.dimension == 1024
Switching Providers
To switch CortexDB from the default OpenAI embeddings to Fireworks AI:
from cortexdb_fireworks import FireworksEmbeddingProvider
provider = FireworksEmbeddingProvider() # reads from env vars
All CortexDB embedding providers implement the same interface (embed, embed_query, dimension, model_name), so switching is a one-line change.