mirror of
https://github.com/vectorize-io/hindsight.git
synced 2026-09-14 19:31:49 +08:00
88f1472e52
* docs(docker): reserve shared memory for embedded postgres * docs(docker): keep shared memory guidance concise
135 lines
3.9 KiB
Plaintext
135 lines
3.9 KiB
Plaintext
---
|
|
sidebar_position: 0
|
|
---
|
|
|
|
# Quick Start
|
|
|
|
Get up and running with Hindsight in 60 seconds.
|
|
|
|
import Tabs from '@theme/Tabs';
|
|
import TabItem from '@theme/TabItem';
|
|
import CodeSnippet from '@site/src/components/CodeSnippet';
|
|
import {ClientsGrid} from '@site/src/components/SupportedGrids';
|
|
|
|
{/* Import raw source files */}
|
|
import quickstartPy from '!!raw-loader!@site/examples/api/quickstart.py';
|
|
import quickstartMjs from '!!raw-loader!@site/examples/api/quickstart.mjs';
|
|
import quickstartSh from '!!raw-loader!@site/examples/api/quickstart.sh';
|
|
import quickstartGo from '!!raw-loader!@site/examples/api/quickstart.go';
|
|
|
|
## Clients
|
|
|
|
<ClientsGrid />
|
|
|
|
## Start the API Server
|
|
|
|
<Tabs>
|
|
<TabItem value="pip" label="pip (API only)">
|
|
|
|
```bash
|
|
pip install hindsight-api
|
|
export OPENAI_API_KEY=sk-xxx
|
|
export HINDSIGHT_API_LLM_API_KEY=$OPENAI_API_KEY
|
|
|
|
hindsight-api
|
|
```
|
|
|
|
API available at [http://localhost:8888](http://localhost:8888/docs)
|
|
|
|
</TabItem>
|
|
<TabItem value="docker" label="Docker (Full Experience)">
|
|
|
|
```bash
|
|
|
|
export OPENAI_API_KEY=sk-xxx
|
|
|
|
docker run -it --pull always --name hindsight --restart unless-stopped --shm-size=1g -p 8888:8888 -p 9999:9999 \
|
|
-e HINDSIGHT_API_LLM_API_KEY=$OPENAI_API_KEY \
|
|
-v $HOME/.hindsight-docker:/home/hindsight/.pg0 \
|
|
ghcr.io/vectorize-io/hindsight:latest
|
|
```
|
|
|
|
- **API**: http://localhost:8888
|
|
- **Control Plane** (Web UI): http://localhost:9999
|
|
|
|
:::tip Set a stable `HINDSIGHT_API_WORKER_ID` in production
|
|
The worker uses the container hostname as its identity, which Docker sets to the container ID by default. That value changes on every restart, so any task that was being processed when the container went down stays parked under the old ID with no way for the new container to recognize it as its own.
|
|
|
|
Set `HINDSIGHT_API_WORKER_ID` to a stable value (e.g., `-e HINDSIGHT_API_WORKER_ID=hindsight-prod`) so the worker keeps the same identity across restarts. This is recommended even for single-container deployments. For diagnosis and recovery commands, see [Admin CLI - Recovering stuck operations](/developer/admin-cli#recovering-stuck-or-zombie-operations).
|
|
:::
|
|
|
|
</TabItem>
|
|
</Tabs>
|
|
|
|
:::tip LLM Provider
|
|
Hindsight requires an LLM with structured output support. Recommended: **Groq** with `gpt-oss-20b` for fast, cost-effective inference.
|
|
See [LLM Providers](/developer/models#llm) for more details.
|
|
:::
|
|
|
|
---
|
|
|
|
## Use the Client
|
|
|
|
<Tabs>
|
|
<TabItem value="python" label="Python">
|
|
|
|
```bash
|
|
pip install hindsight-client
|
|
```
|
|
|
|
<CodeSnippet code={quickstartPy} section="quickstart-full" language="python" />
|
|
|
|
</TabItem>
|
|
<TabItem value="node" label="Node.js">
|
|
|
|
```bash
|
|
npm install @vectorize-io/hindsight-client
|
|
```
|
|
|
|
<CodeSnippet code={quickstartMjs} section="quickstart-full" language="javascript" />
|
|
|
|
</TabItem>
|
|
<TabItem value="cli" label="CLI">
|
|
|
|
```bash
|
|
curl -fsSL https://hindsight.vectorize.io/get-cli | bash
|
|
```
|
|
|
|
<CodeSnippet code={quickstartSh} section="quickstart-full" language="bash" />
|
|
|
|
</TabItem>
|
|
<TabItem value="go" label="Go">
|
|
|
|
```bash
|
|
go get github.com/vectorize-io/hindsight/hindsight-clients/go
|
|
```
|
|
|
|
<CodeSnippet code={quickstartGo} section="quickstart-full" language="go" />
|
|
|
|
</TabItem>
|
|
</Tabs>
|
|
|
|
---
|
|
|
|
## What's Happening
|
|
|
|
| Operation | What it does |
|
|
|-----------|--------------|
|
|
| **Retain** | Content is processed, facts are extracted, entities are identified and linked in a knowledge graph |
|
|
| **Recall** | Four search strategies (semantic, keyword, graph, temporal) run in parallel to find relevant memories |
|
|
| **Reflect** | Retrieved memories are used to generate a disposition-aware response |
|
|
|
|
---
|
|
|
|
## Integrations
|
|
|
|
Browse all supported integrations in the [Integrations Hub](/integrations).
|
|
|
|
## Next Steps
|
|
|
|
- [**Retain**](./retain) — Advanced options for storing memories
|
|
- [**Recall**](./recall) — Search and retrieval strategies
|
|
- [**Reflect**](./reflect) — Disposition-aware reasoning
|
|
- [**Memory Banks**](./memory-banks) — Configure disposition and mission
|
|
- [**Server Deployment**](/developer/installation) — Docker Compose, Helm, and production setup
|