* feat: add support for custom message timestamps in API
- Introduced `created_at` parameter for message creation, allowing users to specify custom timestamps.
- **Single source of truth for timestamp string format**
- Updated SDK documentation to reflect this new feature and its use cases.
- Enhanced validation schemas to include the optional `created_at` field.
- Added tests to verify functionality for messages with and without custom timestamps, ensuring correct behavior and default timestamp usage.
* feat: add timestamp option to sdks
* feat: Add get summaries endpoints
* feat: WIP basic SDK implementation blocked until stainless release
* feat: Implement SDKs with honcho-core methods
* fix (sdk): Used release 1.4.0 core sdks
* fix: Code Rabbit
* chore: Pytest errors
---------
Co-authored-by: Benjamin McCormick <docterformer@protonmail.com>
* chore: Update versioning for release
* fix: remove db creation at start and sync migrations and models
* fix: Checkpoint changing metamessage schema
* chore: linter fixes
* fix: session cloning working
* Hybrid long-term memory (#92)
* Add TOM method switching
* Add system prompt and note on format
* Add persistence tweaks
* Specify format for each section of user representation
* Parse XML tags before saving representation metamessage
* Clean up
* Use Claude 3.5 Haiku and refine prompt
* Simplify message processing
* chore: update token limit on dialectic and model for deriver
* Add embedding-based long-term fact retrieval
* Fix bug preventing new documents from being created
* Use multiple queries + tweak prompt
* Fix collection name bug + add duplicate removal
* First implementation of on-demand user rep generation
* WIP debug on-demand user rep changes
* Fixed representations not being stored & deriver issue
* Some speed improvements
* Play with number of facts / queries
* WIP prompt caching for Claude
* WIP fix anthropic caching
* Anthropic prompt caching working but messages too short
* Use Cerebras for small inferences
* Make dialectic responses 1000 tokens max
* Make user representation generation model a constant
* Use llama 3.1 8b for query generation
* Update env template
* Add crud.get_or_create_protected_collection
* rabbit comments
* Fix linter issues
* Add Cerebras to stream router method
* Better handling of default-empty string args
* Change prints to debug logs
* Add error handling to TOM inference
* Handle missing/empty client in model responses
* Handle no messages case in get_chat_history
* Fix indent
* Add error handling to single_prompt methods
* Fix get_or_create_user_protected_collection
* Simplify openAI-compatible model client instantiation
* Remove health endpoint
* Remove LocalEmbeddingStore
* Change prints to debug logs
* Change sentry track
* Code review changes
* Add README to ToM module
* Switch to Groq
* Fix inconsistent openai compatible provider list in stream()
* Update env template to include Groq variables
* Add model_client tests
* fix: Fix unit tests
---------
Co-authored-by: Vineeth Voruganti <13438633+VVoruganti@users.noreply.github.com>
* add scoped API keys (#91)
* add AUTH_JWT_SECRET and ADMIN_KEY, use in security middleware (TODO granular keys)
* WIP: convert all API paths to use scoped keys
* add basic unit tests for API keys, ruff formatting
* MVP of route using JWT for payload
* add get_user_from_token
* add key table to postgres, use it to enable key revocation
* add key revocation pt 2 -- fix order of param checks
* finish convenience routes that assume params from JWT
* add tests for key API
* get_keys
* add secrets utility script, add key rotation, fill out tests
* add tiny cache as PoC
* nits, validations, etc
* only create keys table migration if necessary
* fix keys tests to always use auth
* tiny fix to make custom DATABASE_SCHEMA work
* review: add better docs, fix security issue with cache, clear db on rotation, and more
* remove rotation
* remove key database entirely
* Add `/all` path to get all apps (#94)
* add `/all` path for apps
* assert vector extension installed (need this for groudon)
* review
---------
Co-authored-by: Vineeth Voruganti <13438633+VVoruganti@users.noreply.github.com>
* add scoped API keys (#91)
* add AUTH_JWT_SECRET and ADMIN_KEY, use in security middleware (TODO granular keys)
* WIP: convert all API paths to use scoped keys
* add basic unit tests for API keys, ruff formatting
* MVP of route using JWT for payload
* add get_user_from_token
* add key table to postgres, use it to enable key revocation
* add key revocation pt 2 -- fix order of param checks
* finish convenience routes that assume params from JWT
* add tests for key API
* get_keys
* add secrets utility script, add key rotation, fill out tests
* add tiny cache as PoC
* nits, validations, etc
* only create keys table migration if necessary
* fix keys tests to always use auth
* tiny fix to make custom DATABASE_SCHEMA work
* review: add better docs, fix security issue with cache, clear db on rotation, and more
* remove rotation
* remove key database entirely
* Add `/all` path to get all apps (#94)
* add `/all` path for apps
* assert vector extension installed (need this for groudon)
* review
---------
Co-authored-by: Vineeth Voruganti <13438633+VVoruganti@users.noreply.github.com>
* chore: README and CHANGELOG updates
* add JWT expiry
* fix: Consolidate get methods with JWT token resolution
* chore: Add Annotation to Path, Query, and Body params
* chore: run ruff formatter
* chore: nits & add one exhaustive test of a query route
* fix: undo change to fly.toml
* fix: Langfuse tracing
* Consolidate Get Methods (#96)
* fix: Consolidate get methods with JWT token resolution
* chore: Add Annotation to Path, Query, and Body params
* chore: run ruff formatter
* chore: nits & add one exhaustive test of a query route
* fix: undo change to fly.toml
---------
Co-authored-by: dr-frmr <docterformer@protonmail.com>
* fix: dev-667 fix streaming endpoint
* fix: Anthropic Langfuse Tracing
* fix: add scripts folder to dockerfile
* fix: Remove redundant fields from pydantic schemas
* fix: Add deeper protection on reserved collection
* fix: Consolidate chat and stream methods
* docs: Update Mintlify API Reference and Changelog
* remove langchain guide, update architecture diagram
* honcho mcp server
* chore: Update .env template
* update discord, temporarily remove other guides
* Limit dialectic & deriver context usage with two-scale progressive summarization (#97)
* WIP two tiered summaries
* Move to process_item
* Save user rep metamessage even if no message_id
* Change number of messages per short summary
* Fix broken mock
* Remove prints
* chore: fix test
---------
Co-authored-by: Vineeth Voruganti <13438633+VVoruganti@users.noreply.github.com>
* feat: Add Gemini Support, link facts to message, use 8b for dialectic fact queries
* chore: Styling
* chore: coderabbit nitpicks
* keep dialectic guide
* Add streaming guide
* Remove TODO from dialectic guide
* Fix JS snippets that referred to honcho singleton as client
* Add App explanation to architecture page
---------
Co-authored-by: Dani Balcells <18307962+danibalcells@users.noreply.github.com>
Co-authored-by: doria <93405247+dr-frmr@users.noreply.github.com>
Co-authored-by: dr-frmr <docterformer@protonmail.com>
Co-authored-by: vintro <vince@plasticlabs.ai>
Co-authored-by: Daniel Balcells <dbalcells@gmail.com>
* fix: increase db pool limit and optimize crud requests
* fix: Sentry tracing and fly concurrency
* feat: Add alembic and indexes
* feat: Batch insert method
* fix: Pydantic Validation
* fix: Added Pydantic based API validation and Associated Test Cases
* chore: Update Changelog
* fix(docs): Update Docs with new API Method and OpenAPI Spec
* chore(ci): Add Environment Variable for Anthropic
* feat(storage) Add a route to clone sessions
* fix(storage) Add additional test case and fix case conventions for query parameters in clone method
* fix(storage) make case conventions consistent and documentation updates
* fix(docs) Update docs with newest routes
* fix(storage) Add commit to clone method
* 🧪 asyncify tests
* ✨ asyncify client
* Basic Test for Page based pagination
* add sync buildstep and client
* add vscode DX
* Added Testing for generators and updated examples
* feat: example updates
* readme exists now
* Stylistic changes and generic message
* Metamessages with other refactoring - untested
* Work with unit tests
* Fix Examples
* MEME-78 Update Changelogs
* Docstrings to client
* 🧪 autogenerate sync tests
* test one
* add db type
* sync client
* add status badge
* add coverage
* add file
* give perms
* properly output coverage
* split test and coverage
* rename action
* 🧪 autogenerate sync tests (#16)
* Vector Support (#18)
* Scaffold for PGVector support
* Buggy crud with logic skeleton on api
* Crud logic and schema definition for pgvector
* Populate all routes and refactor to name Collection
* vince's progress
* AsyncCollection progress
* Local PGVector Docker Container
* client methods for sdk except document delete and update
* Vector Support Passing All Test Cases
* Docs Updates
---------
Co-authored-by: vintro <vince@plasticlabs.ai>
* Add reverse parameters for paginated routes
* Address dependabot
* Formatting
* initial commit on honcho dspy personas
* working, hit token limit and can't test dspy optimization
* initial version working, need to test optimization
* optimizers working, but appending any example
* ready for user object (tbomk)
* Revert "add test actions and coverage"
* Refactor to add User and App Tables
* User Object passing test cases
* Update examples
* DSPy Todo and documentation updates
* Add is_active filtering
* Add is_active filtering to the generator
* Fix update user metadata
* working, but weird compiler error
* fixed str error in optimizer
* ship
* sentry
* Open Telemetry
* optional logging with environment variables
* add actions again? (#29)
* add postgres
* add openai key
* readd coverage
* desyncify and add detailed coverage
* ⚙️ chore: update start script in VS Code to include poetry install --no-root before running uvicorn (#33)
* Refactored code but need to tweak asyncpg
* Working Async API using Psycopg3
* Update Workflow Connection URI
* Update Workflow Connection URI in coverage test as well
* Skeleton for Dialectic API
* Fixes DEV-217 URL Encoding
* Add Built-in Langchain Utility function
* Sphinx Docs MVP
* Metadata filtering for all fixes dev-261
* Basic Dialectic Endpoint fixes dev-253
* Working Fact Deriver
* 0.0.5 Docs and README updates
* Cloudflare Sphinx
* update example to use right function (#36)
* 🚀 feat: add support for running API using docker-compose with configurable environment variables and update docker-compose.yml for API and database services. (#34)
Co-authored-by: Vineeth Voruganti <13438633+VVoruganti@users.noreply.github.com>
* add interrogate
* routerify everything
* full docstring coverage
* remove unused imports and fix env issue
* Update docker-compose connection uri and remove auto-stop to deriver process
* Docstrings and langchain message converter in reverse
* Sentry, OTEL, langchain both directions, fly.toml for deriver
* Rename to deriver
* Fix favicon and remove metadata from schema
* 0.0.6 Notes
* Changelog edit
* Route bug fix
* Route bug fix again
* Langchain Utilities Refactor (#48)
* [0.0.6] - 3-21-2024 Bug Fixes (#47)
* 🧪 asyncify tests
* ✨ asyncify client
* Basic Test for Page based pagination
* add sync buildstep and client
* add vscode DX
* Added Testing for generators and updated examples
* feat: example updates
* readme exists now
* Stylistic changes and generic message
* Metamessages with other refactoring - untested
* Work with unit tests
* Fix Examples
* MEME-78 Update Changelogs
* Docstrings to client
* 🧪 autogenerate sync tests
* test one
* add db type
* sync client
* add status badge
* add coverage
* add file
* give perms
* properly output coverage
* split test and coverage
* rename action
* 🧪 autogenerate sync tests (#16)
* Vector Support (#18)
* Scaffold for PGVector support
* Buggy crud with logic skeleton on api
* Crud logic and schema definition for pgvector
* Populate all routes and refactor to name Collection
* vince's progress
* AsyncCollection progress
* Local PGVector Docker Container
* client methods for sdk except document delete and update
* Vector Support Passing All Test Cases
* Docs Updates
---------
Co-authored-by: vintro <vince@plasticlabs.ai>
* Add reverse parameters for paginated routes
* Address dependabot
* Formatting
* initial commit on honcho dspy personas
* working, hit token limit and can't test dspy optimization
* initial version working, need to test optimization
* optimizers working, but appending any example
* ready for user object (tbomk)
* Revert "add test actions and coverage"
* Refactor to add User and App Tables
* User Object passing test cases
* Update examples
* DSPy Todo and documentation updates
* Add is_active filtering
* Add is_active filtering to the generator
* Fix update user metadata
* working, but weird compiler error
* fixed str error in optimizer
* ship
* sentry
* Open Telemetry
* optional logging with environment variables
* add actions again? (#29)
* add postgres
* add openai key
* readd coverage
* desyncify and add detailed coverage
* ⚙️ chore: update start script in VS Code to include poetry install --no-root before running uvicorn (#33)
* Refactored code but need to tweak asyncpg
* Working Async API using Psycopg3
* Update Workflow Connection URI
* Update Workflow Connection URI in coverage test as well
* Skeleton for Dialectic API
* Fixes DEV-217 URL Encoding
* Add Built-in Langchain Utility function
* Sphinx Docs MVP
* Metadata filtering for all fixes dev-261
* Basic Dialectic Endpoint fixes dev-253
* Working Fact Deriver
* 0.0.5 Docs and README updates
* Cloudflare Sphinx
* update example to use right function (#36)
* 🚀 feat: add support for running API using docker-compose with configurable environment variables and update docker-compose.yml for API and database services. (#34)
Co-authored-by: Vineeth Voruganti <13438633+VVoruganti@users.noreply.github.com>
* add interrogate
* routerify everything
* full docstring coverage
* remove unused imports and fix env issue
* Update docker-compose connection uri and remove auto-stop to deriver process
* Docstrings and langchain message converter in reverse
* Sentry, OTEL, langchain both directions, fly.toml for deriver
* Rename to deriver
* Fix favicon and remove metadata from schema
* 0.0.6 Notes
* Changelog edit
* Route bug fix
* Route bug fix again
---------
Co-authored-by: hyusap <paulayush@gmail.com>
Co-authored-by: vintro <vince@plasticlabs.ai>
Co-authored-by: vintro <77507980+vintrocode@users.noreply.github.com>
* Port Docs
* Update Examples with new langchain utilites
* Rename decorator
* Synchronize
* Fix API SessionLocal
---------
Co-authored-by: hyusap <paulayush@gmail.com>
Co-authored-by: vintro <vince@plasticlabs.ai>
Co-authored-by: vintro <77507980+vintrocode@users.noreply.github.com>
* Basic Auth Header validation
* Basic Auth Service
* Deriver reliability and default auth revoke
* .env.template
* 0.0.7 Updates
---------
Co-authored-by: hyusap <paulayush@gmail.com>
Co-authored-by: vintro <vince@plasticlabs.ai>
Co-authored-by: vintro <77507980+vintrocode@users.noreply.github.com>