128 lines
3.8 KiB
Markdown
128 lines
3.8 KiB
Markdown
# Models
|
|
|
|
Hindsight uses several machine learning models for different tasks.
|
|
|
|
## Overview
|
|
|
|
| Model Type | Purpose | Default | Configurable |
|
|
|------------|---------|---------|--------------|
|
|
| **LLM** | Fact extraction, reasoning, generation | Provider-specific | Yes |
|
|
| **Embedding** | Vector representations for semantic search | `BAAI/bge-small-en-v1.5` | Yes |
|
|
| **Cross-Encoder** | Reranking search results | `cross-encoder/ms-marco-MiniLM-L-6-v2` | Yes |
|
|
|
|
All local models (embedding, cross-encoder) are automatically downloaded from HuggingFace on first run.
|
|
|
|
---
|
|
|
|
## LLM
|
|
|
|
Used for fact extraction, entity resolution, opinion generation, and answer synthesis.
|
|
|
|
**Supported providers:** OpenAI, Gemini, Groq, Ollama
|
|
|
|
### Tested Models
|
|
|
|
The following models have been tested and verified to work correctly with Hindsight:
|
|
|
|
| Provider | Model |
|
|
|----------|-------|
|
|
| **OpenAI** | `gpt-5` |
|
|
| **OpenAI** | `gpt-5-mini` |
|
|
| **OpenAI** | `gpt-5-nano` |
|
|
| **OpenAI** | `gpt-4.1-mini` |
|
|
| **OpenAI** | `gpt-4.1-nano` |
|
|
| **OpenAI** | `gpt-4o-mini` |
|
|
| **Gemini** | `gemini-2.5-flash` |
|
|
| **Gemini** | `gemini-2.5-flash-lite` |
|
|
| **Groq** | `openai/gpt-oss-120b` |
|
|
| **Groq** | `openai/gpt-oss-20b` |
|
|
| **Groq** | `llama-3.3-70b-versatile` |
|
|
|
|
### Using Other Models
|
|
|
|
Other LLM models not listed above may work with Hindsight, but they must support **at least 65,000 output tokens** to ensure reliable fact extraction. If you need support for a specific model that doesn't meet this requirement, please [open an issue](https://github.com/hindsight-ai/hindsight/issues) to request an exception.
|
|
|
|
### Configuration
|
|
|
|
```bash
|
|
# Groq (recommended)
|
|
export HINDSIGHT_API_LLM_PROVIDER=groq
|
|
export HINDSIGHT_API_LLM_API_KEY=gsk_xxxxxxxxxxxx
|
|
export HINDSIGHT_API_LLM_MODEL=openai/gpt-oss-20b
|
|
|
|
# OpenAI
|
|
export HINDSIGHT_API_LLM_PROVIDER=openai
|
|
export HINDSIGHT_API_LLM_API_KEY=sk-xxxxxxxxxxxx
|
|
export HINDSIGHT_API_LLM_MODEL=gpt-4o
|
|
|
|
# Gemini
|
|
export HINDSIGHT_API_LLM_PROVIDER=gemini
|
|
export HINDSIGHT_API_LLM_API_KEY=xxxxxxxxxxxx
|
|
export HINDSIGHT_API_LLM_MODEL=gemini-2.0-flash
|
|
|
|
# Ollama (local)
|
|
export HINDSIGHT_API_LLM_PROVIDER=ollama
|
|
export HINDSIGHT_API_LLM_BASE_URL=http://localhost:11434/v1
|
|
export HINDSIGHT_API_LLM_MODEL=llama3.1
|
|
```
|
|
|
|
**Note:** The LLM is the primary bottleneck for retain operations. See [Performance](./performance) for optimization strategies.
|
|
|
|
---
|
|
|
|
## Embedding Model
|
|
|
|
Converts text into dense vector representations for semantic similarity search.
|
|
|
|
**Default:** `BAAI/bge-small-en-v1.5` (384 dimensions, ~130MB)
|
|
|
|
**Alternatives:**
|
|
|
|
| Model | Use Case |
|
|
|-------|----------|
|
|
| `BAAI/bge-small-en-v1.5` | Default, fast, good quality |
|
|
| `sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2` | Multilingual (50+ languages) |
|
|
|
|
:::warning
|
|
All embedding models must produce **384-dimensional vectors** to match the database schema.
|
|
:::
|
|
|
|
**Configuration:**
|
|
|
|
```bash
|
|
# Local provider (default)
|
|
export HINDSIGHT_API_EMBEDDINGS_PROVIDER=local
|
|
export HINDSIGHT_API_EMBEDDINGS_LOCAL_MODEL=BAAI/bge-small-en-v1.5
|
|
|
|
# TEI provider (remote)
|
|
export HINDSIGHT_API_EMBEDDINGS_PROVIDER=tei
|
|
export HINDSIGHT_API_EMBEDDINGS_TEI_URL=http://localhost:8080
|
|
```
|
|
|
|
---
|
|
|
|
## Cross-Encoder (Reranker)
|
|
|
|
Reranks initial search results to improve precision.
|
|
|
|
**Default:** `cross-encoder/ms-marco-MiniLM-L-6-v2` (~85MB)
|
|
|
|
**Alternatives:**
|
|
|
|
| Model | Use Case |
|
|
|-------|----------|
|
|
| `cross-encoder/ms-marco-MiniLM-L-6-v2` | Default, fast |
|
|
| `cross-encoder/ms-marco-MiniLM-L-12-v2` | Higher accuracy |
|
|
| `cross-encoder/mmarco-mMiniLMv2-L12-H384-v1` | Multilingual |
|
|
|
|
**Configuration:**
|
|
|
|
```bash
|
|
# Local provider (default)
|
|
export HINDSIGHT_API_RERANKER_PROVIDER=local
|
|
export HINDSIGHT_API_RERANKER_LOCAL_MODEL=cross-encoder/ms-marco-MiniLM-L-6-v2
|
|
|
|
# TEI provider (remote)
|
|
export HINDSIGHT_API_RERANKER_PROVIDER=tei
|
|
export HINDSIGHT_API_RERANKER_TEI_URL=http://localhost:8081
|
|
```
|