* feat: accept pdf, images and office files * refactor: rename FileConverter to FileParser, simplify file retain API - Rename engine/converters/ → engine/parsers/, FileConverter → FileParser, ConverterRegistry → FileParserRegistry, MarkitdownConverter → MarkitdownParser - Rename env var HINDSIGHT_API_FILE_CONVERTER → HINDSIGHT_API_FILE_PARSER - Remove async/document_tags params from FileRetainRequest (always async now) - Add retain_files() to Python Hindsight client and retainFiles() to TypeScript client - Add sample.pdf to doc examples for working file upload demonstrations - Update test_file_retain.py to use new parser names and always-async behavior - Fix Go client missing os import in api_files.go - Simplify postgresql.py storage to minimal schema * fix: update rust CLI tests to use is_supported_file instead of is_text_file * fix: patch Go api_files.go to add missing 'os' import after generation * fix: insert 'os' import after 'net/url' in api_files.go patch for correct position * chore: regenerate OpenAPI spec and clients (converter→parser description update)
83 lines
3 KiB
YAML
83 lines
3 KiB
YAML
# Docker Compose file for Hindsight with S3 file storage (SeaweedFS)
|
|
#
|
|
# SeaweedFS (Apache 2.0) provides an S3-compatible object storage backend
|
|
# for storing uploaded files instead of PostgreSQL BYTEA storage.
|
|
#
|
|
# Make sure to set the required environment variables before running:
|
|
# - HINDSIGHT_DB_PASSWORD: Password for the PostgreSQL user
|
|
# - Configure LLM provider variables as needed (see below in the hindsight service)
|
|
#
|
|
# Usage:
|
|
# docker compose up -d
|
|
#
|
|
# Optional environment variables with defaults:
|
|
# - HINDSIGHT_VERSION: Hindsight application version (default: latest)
|
|
# - HINDSIGHT_DB_USER: PostgreSQL user (default: hindsight_user)
|
|
# - HINDSIGHT_DB_NAME: PostgreSQL database name (default: hindsight_db)
|
|
# - HINDSIGHT_DB_VERSION: PostgreSQL version (default: 18)
|
|
# - SEAWEEDFS_S3_ACCESS_KEY: S3 access key (default: hindsight_s3_key)
|
|
# - SEAWEEDFS_S3_SECRET_KEY: S3 secret key (default: hindsight_s3_secret)
|
|
|
|
services:
|
|
db:
|
|
image: pgvector/pgvector:pg${HINDSIGHT_DB_VERSION:-18}
|
|
container_name: hindsight-db
|
|
restart: always
|
|
environment:
|
|
POSTGRES_USER: ${HINDSIGHT_DB_USER:-hindsight_user}
|
|
POSTGRES_PASSWORD: ${HINDSIGHT_DB_PASSWORD:?Please set the HINDSIGHT_DB_PASSWORD env variable}
|
|
POSTGRES_DB: ${HINDSIGHT_DB_NAME:-hindsight_db}
|
|
volumes:
|
|
- pg_data:/var/lib/postgresql/${HINDSIGHT_DB_VERSION:-18}/docker
|
|
networks:
|
|
- hindsight-net
|
|
|
|
seaweedfs:
|
|
image: chrislusf/seaweedfs:latest
|
|
container_name: hindsight-seaweedfs
|
|
restart: always
|
|
# Single-node mode: master + volume + filer + S3 gateway all in one process
|
|
command: >
|
|
server
|
|
-s3
|
|
-s3.port=8333
|
|
-s3.config=/etc/seaweedfs/s3.json
|
|
-ip.bind=0.0.0.0
|
|
volumes:
|
|
- seaweedfs_data:/data
|
|
- ./s3.json:/etc/seaweedfs/s3.json:ro
|
|
# Expose S3 API port (uncomment to access from host)
|
|
# ports:
|
|
# - "8333:8333"
|
|
networks:
|
|
- hindsight-net
|
|
|
|
hindsight:
|
|
image: ghcr.io/vectorize-io/hindsight:${HINDSIGHT_VERSION:-latest}
|
|
container_name: hindsight-app
|
|
ports:
|
|
- "8888:8888"
|
|
- "9999:9999"
|
|
environment:
|
|
- HINDSIGHT_API_LLM_API_KEY=${OPENAI_API_KEY?Please set the OPENAI_API_KEY env variable}
|
|
- HINDSIGHT_API_DATABASE_URL=postgresql://${HINDSIGHT_DB_USER:-hindsight_user}:${HINDSIGHT_DB_PASSWORD:?Please set the HINDSIGHT_DB_PASSWORD env variable}@db:5432/${HINDSIGHT_DB_NAME:-hindsight_db}
|
|
# S3 file storage configuration (SeaweedFS)
|
|
- HINDSIGHT_API_FILE_STORAGE_TYPE=s3
|
|
- HINDSIGHT_API_FILE_STORAGE_S3_BUCKET=hindsight
|
|
- HINDSIGHT_API_FILE_STORAGE_S3_ENDPOINT=http://seaweedfs:8333
|
|
- HINDSIGHT_API_FILE_STORAGE_S3_REGION=us-east-1
|
|
- HINDSIGHT_API_FILE_STORAGE_S3_ACCESS_KEY_ID=${SEAWEEDFS_S3_ACCESS_KEY:-hindsight_s3_key}
|
|
- HINDSIGHT_API_FILE_STORAGE_S3_SECRET_ACCESS_KEY=${SEAWEEDFS_S3_SECRET_KEY:-hindsight_s3_secret}
|
|
depends_on:
|
|
- db
|
|
- seaweedfs
|
|
networks:
|
|
- hindsight-net
|
|
|
|
networks:
|
|
hindsight-net:
|
|
driver: bridge
|
|
|
|
volumes:
|
|
pg_data:
|
|
seaweedfs_data:
|