Commit Graph

129 Commits

Author SHA1 Message Date
Vineeth Voruganti 14fe63a41f Merge branch 'vineeth/dev-656' of github.com:plastic-labs/honcho into vineeth/dev-656 2025-04-08 23:39:44 -04:00
Vineeth Voruganti 1005f6a60c fix: Langfuse tracing 2025-04-08 23:39:38 -04:00
dr-frmr 7618e5c4b5
fix: undo change to fly.toml 2025-04-08 15:46:57 -04:00
dr-frmr 8f3c54730d
chore: nits & add one exhaustive test of a query route 2025-04-08 10:38:36 -04:00
Vineeth Voruganti 0cbfb930c3
Merge branch 'vineeth/dev-644' into vineeth/dev-656 2025-04-07 23:03:14 -04:00
Vineeth Voruganti 225e2b8ce9 chore: run ruff formatter 2025-04-07 23:00:01 -04:00
Vineeth Voruganti 62f04a14d5 chore: Add Annotation to Path, Query, and Body params 2025-04-07 18:36:45 -04:00
Vineeth Voruganti 8d2f3db6ba fix: Consolidate get methods with JWT token resolution 2025-04-07 17:06:53 -04:00
dr-frmr d3b1a05299
add JWT expiry 2025-04-03 16:24:23 -04:00
Vineeth Voruganti 253b8109cb chore: README and CHANGELOG updates 2025-04-03 15:50:15 -04:00
Vineeth Voruganti 2d25df0b2f Merge branch 'vineeth/dev-644' of github.com:plastic-labs/honcho into vineeth/dev-644 2025-04-03 15:42:50 -04:00
doria cf1349cf2d 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>
2025-04-03 15:42:21 -04:00
doria 4fabc209f3
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>
2025-04-03 15:14:50 -04:00
Dani Balcells 1d3b5cccc9
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>
2025-04-03 11:55:35 -04:00
Vineeth Voruganti fffbcebf05 fix: session cloning working 2025-04-02 17:24:26 -04:00
Vineeth Voruganti 4cdf7222d2 chore: linter fixes 2025-04-02 12:02:33 -04:00
Vineeth Voruganti 84c9f81273 fix: Checkpoint changing metamessage schema 2025-04-01 17:12:41 -04:00
Vineeth Voruganti 25c8058bae fix: remove db creation at start and sync migrations and models 2025-04-01 15:34:01 -04:00
Vineeth Voruganti 63cdb6ba66 chore: Update versioning for release 2025-03-31 16:36:18 -04:00
Vineeth Voruganti c2a50241cc
Fix Inconsistent Error Handling (#90)
* Add TOM method switching

* Add system prompt and note on format

* Specify format for each section of user representation

* Clean up

* Use Claude 3.5 Haiku and refine prompt

* chore: update token limit on dialectic and model for deriver

* chore: Remove healthcheck endpoint

* feat: Fix inconsistent error handling

* fix: remove SQL echo for performance and increase dialectic to 300 tokens on stream

* chore: Update CLAUDE.md

* fix: Update Dialectic 3.7 Sonnet and add to Changelog

* chore: Update Version Number

---------

Co-authored-by: Daniel Balcells <dbalcells@gmail.com>
2025-03-05 09:44:49 -05:00
Vineeth Voruganti e68aceaab2
Single prompt tom (#89)
* 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

* chore: Update to Contributing Docs and .env template

* Contributing Docs

* chore: Add Deriver Template Variables

* chore: Remove healthcheck endpoint

* chore: Changelog updates

---------

Co-authored-by: Daniel Balcells <dbalcells@gmail.com>
2025-02-24 19:12:31 -05:00
Vineeth Voruganti c2a1bb1796 chore (changelog): Changelog Update 2025-01-06 17:03:02 -05:00
Vineeth Voruganti 1b49be81a0
feat(deriver): Deriver now supports SIGINT and SIGTERM signals with shutdown logic (#86) 2024-12-31 11:37:07 -05:00
Vineeth Voruganti 88d8f9a4f4
Native Support for non-default Postgres Schema (#85)
* fix (alembic): Commit Search Path rather than whole migration

* chore (alembic): Remove debug queries from migrations

* chore: Clean up debugging code
2024-12-31 11:36:48 -05:00
Vineeth Voruganti 079084e67c
Fix Occasional Long Operations (#84)
* Upgrade Packages and Change Connection Engine Settings

* fix (anthropic): use new sdk syntax
2024-12-27 15:03:45 -05:00
Vineeth Voruganti 08133a582f
Vineeth/dev 516 hotfix (#83)
* fix (fly): Changes for fly deployment

* fix: alembic migration to support multi-schema

* feat: Add langfuse for prompt tracing

* Changelog updates
2024-12-23 13:47:13 -05:00
Vineeth Voruganti d6194df824
Bulk Message Creation Endpoint (#82)
* 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
2024-12-16 01:27:15 -05:00
vintro 6995f878a9
Vince/sf prompting changes (#81)
* fix representation and dialectic prompts

* update stream method as well
2024-12-15 22:12:09 -05:00
Vineeth Voruganti 57ef19315e
Database Concurrency Optimizations (#80)
* fix: increase db pool limit and optimize crud requests

* fix: Sentry tracing and fly concurrency

* feat: Add alembic and indexes
2024-12-13 11:56:39 -05:00
Vineeth Voruganti dcff9e31f6
Dialectic Streaming Endpoint Fix (#79)
* fix: dialectic endpoint stream method

* chore: docs
2024-12-04 14:31:36 -05:00
Vineeth Voruganti 76085724e0
Release v0.0.14 (#78)
* fix(storage) Remove Prepared Statements to make compatible with Supavisor

* fix(deriver and dialectic) Use latest user level user_represenation

* fix(storage) Switch to text columns for best postgres practices

* fix(storage) Update docstrings and document query method

* chore(release) v0.0.14 Release State

* chore(release) CHANGELOG

* fix(deriver) Add more detailed profiling with sentry

* chore(release) CHANGELOG

* fix(deriver) increase retry limit on anthropic
2024-11-15 12:38:02 -05:00
Vineeth Voruganti 17ff3804ec
v0.0.13 Ability to Clone Sessions (#77)
* 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
2024-11-07 12:10:09 -05:00
Vineeth Voruganti 05a57cffbd
fix(deriver) remove markup parsing from rich implementation (#76) 2024-11-05 12:06:33 -05:00
Vineeth Voruganti 363f90d6bb
Prompt Caching in Deriver (#75)
* feat(deriver) Claude Caching

* Tested Deriver
2024-10-23 23:15:02 -04:00
Vineeth Voruganti 1af4539d03
Honcho v0.0.12 Release (#74)
* fix(API): Basic API Versioning

* fix (docs) update docs with the latest API Specs

* chore: CHANGELOG

* chore: linting
2024-10-21 18:03:19 -04:00
Vineeth Voruganti 038a172737 Documentation edits made through Mintlify web editor 2024-10-21 16:58:21 -04:00
Vineeth Voruganti 86bdd0cecf
Refactor Paginated GETs for better UX (#73)
* fix: remove opentelemtry code and make deriver workers configurable

* feat(storage) change get route for messages and metamessages to use POST for options

* feat(storage) Change remaining paginated gets to POST requests with options
2024-10-18 19:33:57 -04:00
vintro 487ec43362
Anthropic Migration (#72)
* ready to test deriver

* prompts ready for testing

* compare entire list, don't loop through facts one by one

* parse xml, batch process ai query docs

* timing works

* session id is writing to csv now

* ignore timing logs

* infinite backrooms-inpsired prompts

* yousim/ib inspired prompts v0

* accept incoming changes on agent.py

* dialectic to sonnet for now

* remove timing, use py-spy

* cleanup from timing removal

* remove extra timing stuff

* Route for User LeveL Metamessages

* functional state

* chore: Clean up artifacts

* fix(deriver) update database calls for new schema and payload

* chore(docs) Update Honcho Version

---------

Co-authored-by: Vineeth Voruganti <13438633+VVoruganti@users.noreply.github.com>
2024-10-17 23:39:23 -04:00
Vineeth Voruganti 6d5439a4d8
Switch from UUIDv4 to NanoID (#71)
* fix(embedding) use base openai for embedding and remove azure

* feat(models) switch to nanoids with internal and public id system

* feat(pydantic) Updates models and routes to get tests passing

* fix(deriver) fix enqueue method

* Perf Testing Utilities
2024-10-17 14:07:51 -04:00
Vineeth Voruganti e553a871f7
Github Actions for Testing (#69)
* feat(ci) Add github action with github service container

* chore(ci) Change hostname for service container

* chore(ci) Add Trust Flag

* chore(ci) Use Defaults

* readability

* Try to use localhost

* chore(ci) Use non-default database

* Try with default credentials but non-standard db

* Try to ignore pwd
2024-09-14 21:33:04 -04:00
Vineeth Voruganti 25229921c6
Dialectic Endpoint Improvements (#67)
* feat(dialectic) Allow for batch questions and load session history

* feat(dialectic) parallelize facts and history queries

* feat(agent) Addresses dev-258 allow specifying additional collections

* feat(uv) switched from poetry to uv

* feat(deriver) Turn off derivations by editing session medatadata with a deriver_disabled flag

* fix(tests) Clean up test logic

---------

Co-authored-by: Vineeth Voruganti <vineeth@macbook-pro.mynetworksettings.com>
2024-09-14 17:06:11 -04:00
Vineeth Voruganti 5cac1184e5
vineeth/dev 357 (#66)
* fix(api) Remove slowapi dependency

* Found bug in mirascope that requires an empty OPENAI_API_KEY
2024-09-02 17:25:12 -04:00
Vineeth Voruganti 1e40778338
[0.0.11] Release (#64)
* fix(storage) Remove location_id

* feat(deriver) Deriver can process multiple sessions at once and uses rich for prints

* fix(route) collection update error handling

* chore(docs) update openapi and version numbers
2024-08-01 15:14:11 -04:00
Vineeth Voruganti ddcde6bcea
[0.0.10] Release
* chore: Save Point

* fix(db): change connection logic and remove unnecessary refreshes

* fix(documents): switch to Azure embedding model

* feat: Setup pytest fixtures

* feat(tests): Initial test routes for tranche 1

* feat(test) tranche 2 of tests and associated bug fixes

* feat(test) tranche 3 of tests and associated bug fixes

* fix(tests) Address PR comments and update version and changelog
2024-07-25 13:45:27 -04:00
Vineeth Voruganti 659b13a10f
feat(deriver): Implement Baseline VOE into deriver (#62)
* initial prompts, logic

* ready for process_ai_message fn

* voe deriver logic probably mostly complete, switch to anthropic too

* docker compose working

* verbosity and fixes

* add colors

* Remove logging for debugging

* metamessage query not working

* use the right message id

* shit show status

* call sql directly

* mvp

* chore: Azure and New Mirascope

* fix check dups

* fix fn def

* code review

---------

Co-authored-by: vintro <vince@plasticlabs.ai>
2024-06-01 00:07:46 -07:00
Vineeth Voruganti a4632d4076 Fix provenance 2024-05-23 14:39:25 -07:00
Vineeth Voruganti 75d790dd1f Docker GitHub Action bug fix 2024-05-23 14:34:30 -07:00
Vineeth Voruganti fce61c2948 Fix Docker Action 2024-05-23 14:31:30 -07:00
Vineeth Voruganti 5689973b01
feat: Docker Workflow for Tags and Main (#61)
* fix: patching error handling and error handling in routes

* Docker Github Action
2024-05-23 14:25:19 -07:00
Vineeth Voruganti 6c31fed873
docs: Update Mintlify Documentation (#60)
* Reworked Langchain guide and started on discord guide

* docs(mintlify): Update discord and simple memory guides
2024-05-23 09:51:56 -07:00