* restore caching and fix up some prefixing
* try backend matrix build and fix artifact names
* need id
* add backslashes to be consistent
* fix no-cache
* leave docker tags to the meta action
* need checkout in merge
* add comment
* move spammy logs to debug status
* bunch of no-cache updates
* prefix
---------
Co-authored-by: Richard Kuo (Onyx) <rkuo@onyx.app>
* Update mode to be a default parameter in `FileStore.read`
* Move query history exporting process to be a background job instead
* Move hardcoded report-file-naming to a common utility function
* Add type annotations
* Update download component
* Implement button to re-ping and download CSV file; fix up some backend file-checking logic
* De-indent logic (w/ early return)
* Return different error codes dependings on the type of task status
* Add more resistant failure retrying mechanisms
* Remove default parameter in helper function
* Use popup for error messaging
* Update return code
* Update web/src/app/ee/admin/performance/query-history/DownloadAsCSV.tsx
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
* Add type to useState call
* Update backend/ee/onyx/server/query_history/api.py
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
* Update backend/onyx/file_store/file_store.py
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
* Update backend/ee/onyx/background/celery/apps/primary.py
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
* Move rerender call to after check
* Run formatter
* Add type conversions back (smh greptile)
* Remove duplicated call to save_file
* Move non-fallible logic out of try-except block
* Pass date-ranges into API call
* Convert to ISO strings before passing it into the API call
* Add API to list all tasks
* Create new pydantic model to represent tasks to return instead
* Change helper to only fetch query-history tasks
* Use `shared_tasks` instead of old method
* Address more comments from PR; consolidate how task name is generated
* Mark task as failed if any exception is raised
* Change the task object which is returned back to the FE
* Add a table to display previously generated query-history-csv's
* Add timestamps to task; delete tasks as soon as file finishes processing
* Raise exception if start_time is not present
* Convert hard-coded string to constant
* Add "Generated At" field to table
* Return task list in sorted order (based off of start-time)
* Implement pagination
* Remove unused props and cleanup tailwind classes
* Change the name of kickoff button
* Redesign how previous query exports are viewed
* Make button a constant width even when contents change
* Remove timezone information before comparing
* Decrease interval time for re-pinging API
* Add timezone to start-time creation
* Add a refreshInterval for getting updated task status
* Add new background queue
* Edit small verbiage and remove error popup when max-retries is hit
* Change up heavy worker to recognize new task in new module
* Ensure `celery_app` is imported
* Change how `celery_app` is imported and defined
* Update comment on why `celery_app` must be imported
* Add basic skeleton for new beat task to cleanup any dead / failed query-history-export tasks
* Move cleanup task to different worker / queue
* Implement cleanup task
* Add return type
* Address comment on PR
* Remove delimiter from prefix
* Change name of function to be more descriptive
* Remove delimiter from prefix constant
* Move function invocation closer to usage location
* Move imports to top of file
* Move variable up a scope due to undefined error
* Remove dangling if-statement
* Make function more pure-functional
* Remove redefinition
---------
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
* it will never happen again.
* fix perm sync issue
* fix perm sync issue2
* ensure member emails map is populated
* other fix for perm sync
* address CW comments
* nit
* don't log all channels
* print number of channels
* sanitize indexing exception messages
* harden vespa index swap
* use constants and fix list generation
---------
Co-authored-by: Richard Kuo (Onyx) <rkuo@onyx.app>
* memory optimize task generation for connector deletion
* test
* fix up integration test docker file
* more no-cache
---------
Co-authored-by: Richard Kuo (Onyx) <rkuo@onyx.app>
- created env variable AGENT_ALLOW_REFINEMENT with default "". Must be set to true to enable Refinement.
- added an environment variable for the upper limit of docs that can be sent to verification
* don't hardcode -1
* extra spaces
* fix binary data in blurb
* add note to binary handling
---------
Co-authored-by: Richard Kuo (Onyx) <rkuo@onyx.app>
* tolerance of confluence api weirdness
* remove checkpointing
* remove skipping logic from checkpointing
* add back checkpointing
* switch confluence checkpointing to be based on page starts
* address CW comments and fix unit tests
* some mitigations of bad confluence api
* new checkpointing approach and testing fixes
* fix test
* CW comments
* Fix migration
* Fix migration to take care of various nullability cases
* Address comments on PR
* Rename variables to be more descriptive
* Make helpers private
* Fix select statement
* Add comments to explain the involved logic
* Saving changes
* Finish script to revalidate `display_model_names`
* Address comments on PR by greptile
* Add missing columns
* Pull difference operator out into binding
* Add deletion prior to re-insertion
* Use map from shared llm-provider file instead
* Use helper function instead of copying code
* Remove delete and convert into an update statement
* Use pydantic for ModelConfigurations
* Update to do nothing on-conflict rather than update
* Address nits on PR
* Add default visible model(s) for bedrock
* Perform an update on conflict instead of doing nothing
* Fix migration
* Fix migration to take care of various nullability cases
* Address comments on PR
* Rename variables to be more descriptive
* Make helpers private
* Fix select statement
* Add comments to explain the involved logic
* Add helpers for viewing visible model names
* Fix logic for missing model + display-model names in migration
* refactor salesforce sqlite db access
* more refactoring
* refactor again
* refactor again
* rename object
* add finalizer to ensure db connection is always closed
* avoid unnecessarily nesting connections and commit regularly when possible
* remove db usage from csv download
* dead code
* hide deprecation warning in ddtrace
* remove unused param
---------
Co-authored-by: Richard Kuo (Onyx) <rkuo@onyx.app>
* debug script + slight refactor of db class
* better comments
* move setup logger
---------
Co-authored-by: Richard Kuo (Onyx) <rkuo@onyx.app>
Co-authored-by: Richard Kuo <rkuo@rkuo.com>
* friendlier handling of slack channel retrieval
* retry on downgrade_postgres deadlock
* fix comment
* text
---------
Co-authored-by: Richard Kuo (Onyx) <rkuo@onyx.app>
* Convert the model_names and display_model_names into a set instead
* Update backend/alembic/versions/7a70b7664e37_add_model_configuration_table.py
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
---------
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
* Return default value instead of throwing error
* Add default parameter
* Move logic around
* Use dummy value for max_input_tokens in testing flow
* Remove unnecessary assignment
* tool to generate vespa schema variations for our cloud
* extraneous assign
* use a real templating system instead of search/replace
* fix float
* maybe this should be double
* remove redundant var
* template the other files
* try a spawned process
* move the wrapper
* fix args
* increase timeout
* run multitenant reset operations out of process as well
---------
Co-authored-by: Richard Kuo (Onyx) <rkuo@onyx.app>
Co-authored-by: Richard Kuo <rkuo@rkuo.com>
* add emails to retry with on 403
* attempted fix for connector test
* CW comments
* connector test fix
* test fixes and continue on 403
* fix tests
* fix tests
* fix concurrency tests
* fix integration tests with llmprovider eager loading
* Add multi text array field
* Add multiple values to model configuration for a custom LLM provider
* Fix reference to old field name
* Add migration
* Update all instances of model_names / display_model_names to use new schema migration
* Update background task
* Update endpoints to not throw errors
* Add test
* Update backend/alembic/versions/7a70b7664e37_add_models_configuration_table.py
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
* Update backend/onyx/background/celery/tasks/llm_model_update/tasks.py
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
* Fix list comprehension nits
* Update web/src/components/admin/connectors/Field.tsx
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
* Update web/src/app/admin/configuration/llm/interfaces.ts
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
* Implement greptile recommendations
* Update backend/onyx/db/llm.py
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
* Update backend/onyx/server/manage/llm/api.py
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
* Update backend/onyx/background/celery/tasks/llm_model_update/tasks.py
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
* Update backend/onyx/db/llm.py
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
* Fix more greptile suggestions
* Run formatter again
* Update backend/onyx/db/models.py
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
* Add relationship to `LLMProvider` and `ModelConfigurations` classes
* Use sqlalchemy ORM relationships instead of manually populating fields
* Upgrade migration
* Update interface
* Remove all instances of model_names and display_model_names from backend
* Add more tests and fix bugs
* Run prettier
* Add types
* Update migration to perform data transformation
* Ensure native llm providers don't have custom max input tokens
* Start updating frontend logic to support custom max input tokens
* Pass max input tokens to LLM class (to be passed into `litellm.completion` call later)
* Add ModelConfigurationField component for custom llm providers
* Edit spacing and styling of model configuration matrix
* Fix error message displaying bug
* Edit opacity of `FiX` field for first index
* Change opacity back
* Change roundness
* Address comments on PR
* Perform fetching of `max_input_tokens` at the beginning of the callgraph and rope it throughout the entire callstack
* Change `add` to `execute`
* Move `max_input_tokens` into `LLMConfig`
* Fix bug with error messages not being cleared
* Change field used to fetch LLMProvider
* Fix model-configuration UI
* Address comments
* Remove circular import
* Fix failing tests in GH
* Fix failing tests
* Use `isSubset` instead of equality to determine native vs custom LLM Provider
* Remove unused import
* Make responses always display max_input_tokens
* Fix api endpoint to hit
* Update types in web application
* Update object field
* Fix more type errors
* Fix failing llm provider tests
---------
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
* add o3 + o4 mini
* k
* see which ones fail
* attempt
* k
* k
* llm ordering passing
* all tests passing
* quick bump
* Revert "add o3 + o4 mini"
This reverts commit 4cfa1984ec.
* k
* k
* tool to generate vespa schema variations for our cloud
* extraneous assign
* use a real templating system instead of search/replace
* fix float
* maybe this should be double
* remove redundant var
* template the other files
* try a spawned process
* move the wrapper
* fix args
* increase timeout
---------
Co-authored-by: Richard Kuo (Onyx) <rkuo@onyx.app>
Co-authored-by: Richard Kuo <rkuo@rkuo.com>
* tool to generate vespa schema variations for our cloud
* extraneous assign
* float, not double
* back to double
---------
Co-authored-by: Richard Kuo (Onyx) <rkuo@onyx.app>
* refactor a mega function for readability and make sure to increment retry_count on exception so that we don't infinitely loop
* improve session and page level context handling
* don't use pydantic for the session context
* we don't need retry success
* move playwright handling into the session context
* need to break on ok
* return doc from scrape
* fix comment
---------
Co-authored-by: Richard Kuo (Onyx) <rkuo@onyx.app>
* Fix duplicate kwarg issue
* Change how vertex_credentials are passed
* Modify temporary dict instead
* Change string to a global constant
* Add extra condition to if-check during population of map
* small improvement to checking for image attachments
* better comments
* check centralized list of types instead of hardcoding them in the connector
---------
Co-authored-by: Richard Kuo (Onyx) <rkuo@onyx.app>
* upgrade celery to release version
* make the watchdog script more reusable
* use constant
* code review
* catch interrupt
---------
Co-authored-by: Richard Kuo (Onyx) <rkuo@onyx.app>
* rollback properly on exception
* rollback on exception
* don't continue if we can't set the search path
* cleaner handling via context manager
---------
Co-authored-by: Richard Kuo (Danswer) <rkuo@onyx.app>
* initial working version
* ranking profile
* modification for keyword/instruction retrieval
* mypy fixes
* EL comments
* added env var (True for now)
* flipped default to False
* mypy & final EL/CW comments + import issue
* refactor salesforce sqlite db access
* more refactoring
* refactor again
* refactor again
* rename object
* add finalizer to ensure db connection is always closed
* avoid unnecessarily nesting connections and commit regularly when possible
---------
Co-authored-by: Richard Kuo (Onyx) <rkuo@onyx.app>
* bump fastapi and starlette
* bumping llama index and nltk and associated deps
* bump to fix python-multipart
* bump aiohttp
* update package lock for examples/widget
* bump black
* sentencesplitter has changed namespaces
* fix reorder import check, fix missing passlib
* update package-lock.json
* black formatter updated
* reformatted again
* change to black compatible reorder
* change to black compatible reorder-python-imports fork
* fix pytest dependency
* black format again
* we don't need cdk.txt. update packages to be consistent across all packages
---------
Co-authored-by: Richard Kuo (Onyx) <rkuo@onyx.app>
Co-authored-by: Richard Kuo <rkuo@rkuo.com>
* pass through various id's and log them in the model server for better tracking
* fix test
---------
Co-authored-by: Richard Kuo (Onyx) <rkuo@onyx.app>
* use send_task to be consistent
* add pidbox monitoring task
* add logging so we can track the task execution
* log the idletime of the pidbox
---------
Co-authored-by: Richard Kuo (Onyx) <rkuo@onyx.app>
The code for token cost calculation fails when using a LiteLLM proxy due to mismatch with the provider naming. For now, just handle this exception and assume cost 0 when that happens instead of breaking the flow - A more precise, LiteLLM proxy based cost calculation (relying in the `/model/info`) LiteLLM Proxy method will be needed
* Add gemini well-known-llm-provider
* Edit styling of anonymous function
* Remove space
* Edit how advanced options are displayed
* Add VertexAI to acceptable llm providers
* Add new `FileUploadFormField` component
* Edit FileUpload component
* Clean up logic for displaying native llm providers; add support for more complex `CustomConfigKey` types
* Fix minor nits in web app
* Add ability to pass vertex credentials to `litellm`
* Remove unused prop
* Change name of enum value
* Add back ability to change form based on first time configurations
* Create new Error with string instead of throwing raw string
* Add more Gemini models
* Edit mappings for Gemini models
* Edit comment
* Rearrange llm models
* Run black formatter
* Remove complex configurations during first time registration
* Fix nit
* Update llm provider name
* Edit temporary formik field to also have the filename
* Run reformatter
* Reorder commits
* Add advanced configurations for enabled LLM Providers
* WIP
* WIP almost done, but realized we can just do basic retrieval
* rebased and added scripts
* improved approach to extracting smart chips
* remove files from previous branch
* fix connector tests
* fix test
* Update web connector implementation and fix line length issues
* Update configurations and fix connector issues
* Update Slack connector
* Update connectors and add jira_test_env to gitignore, removing sensitive information
* Restore checkpointing functionality and remove sensitive information
* Fix agent mode to properly handle thinking tokens
* up
* Enhance ThinkingBox component with improved content handling and animations. Added support for partial thinking tokens, refined scrolling behavior, and updated CSS for better visual feedback during thinking states.
* Create clean branch with frontend thinking mode changes only
* Update ThinkingBox component to include new props for completion and streaming states. Refactor smooth scrolling logic into a dedicated function for improved readability. Add new entry to .gitignore for jira_test_env.
* Remove autoCollapse prop from AIMessage component for improved flexibility in message display.
* Update thinking tokens handling in chat utils
* Remove unused cleanThinkingContent import from Messages component to streamline code.
---------
Co-authored-by: ferdinand loesch <f.loesch@sportradar.com>
Co-authored-by: EC2 Default User <ec2-user@ip-10-73-128-233.eu-central-1.compute.internal>
Co-authored-by: Your Name <you@example.com>
Co-authored-by: Chris Weaver <25087905+Weves@users.noreply.github.com>
* working around a gong race condition in their api
* add back gong basic test
* formatting
* add the call index
---------
Co-authored-by: Richard Kuo (Onyx) <rkuo@onyx.app>
* add some gc
* small refactoring for temp directories
* WIP
* add some gc collects and size calculations
* un-xfail
* fix salesforce test
* loose check for number of docs
* adjust test again
* cleanup
* nuke directory param, remove using sqlite db to cache email / id mappings
---------
Co-authored-by: Richard Kuo (Onyx) <rkuo@onyx.app>
* Enhance Highspot connector with error handling and add unit tests for poll_source functionality
* Fix file extension validation logic to allow either plain text or document format
* gong debugging
* add retries via class level session, add debugging
* add gong connector test
---------
Co-authored-by: Richard Kuo (Onyx) <rkuo@onyx.app>
* add prometheus metrics endpoints via helper package
* model server specific requirements
* mark as public endpoint
---------
Co-authored-by: Richard Kuo (Onyx) <rkuo@onyx.app>
* fix large docs selected in chat pruning
* better approach to length restriction
* comments
* comments
* fix unit tests and minor pruning bug
* remove prints
* stubbing out request id
* passthru or create request id's in api and model server
* add onyx request id
* get request id logging into uvicorn
* no logs
* change prefixes
* fix comment
* docker image needs specific shared files
---------
Co-authored-by: Richard Kuo (Onyx) <rkuo@onyx.app>
* use slack's built in rate limit handler for the bot
* WIP
* fix the slack rate limit handler
* change default to 8
* cleanup
* try catch int conversion just in case
* linearize this logic better
* code review comments
---------
Co-authored-by: Richard Kuo (Onyx) <rkuo@onyx.app>
* new mit integration test template
* edit
* fix problem with ACL type tags and MIT testing for test_connector_deletion
* fix test_connector_deletion_for_overlapping_connectors
* disable some enterprise only tests in MIT version
* disable a bunch of user group / curator tests in MIT version
* wire off more tests
* typo fix
---------
Co-authored-by: Richard Kuo (Onyx) <rkuo@onyx.app>
Co-authored-by: Richard Kuo <rkuo@rkuo.com>
* fix acl prefixing
* increase timeout a tad
* block access to init'ing DocumentAccess directly, fix test to work with ee/MIT
* fix env var checks
---------
Co-authored-by: Richard Kuo (Onyx) <rkuo@onyx.app>
* refactor file extension checking and add test for blob s3
* code review
* fix checking ext
---------
Co-authored-by: Richard Kuo (Onyx) <rkuo@onyx.app>
* possible fix for confluence query filter
* nuke the attachment filter query ... it doesn't work!
---------
Co-authored-by: Richard Kuo (Onyx) <rkuo@onyx.app>
* fix issue with drive connector service account indexing
* correct checkpoint resumption
* final set of fixes
* nit
* fix typing
* logging and CW comments
* nit
* wire off image downloading for confluence and gdrive if not enabled in settings
* fix partial func
* fix confluence basic test
* add test for skipping/allowing images
* review comments
* skip allow images test
* mock function using the db
* mock at the proper level
---------
Co-authored-by: Richard Kuo (Onyx) <rkuo@onyx.app>
* sanitize llm keys and handle updates properly
* fix llm provider testing
* fix test
* mypy
* fix default model editing
---------
Co-authored-by: Richard Kuo (Danswer) <rkuo@onyx.app>
Co-authored-by: Richard Kuo <rkuo@rkuo.com>
* Checkpointed Jira connector
* nit
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
* typing improvements and test fixes
* cleaner typing
* remove default because it is from the future
* mypy
* Address EL comments
---------
Co-authored-by: evan-danswer <evan@danswer.ai>
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
* work in progress
* work in progress
* WIP
* refactor, use inline attachment for image (base64 encoding doesn't work)
* pretty sure this belongs behind a multi_tenant check
* code review / refactor
---------
Co-authored-by: Richard Kuo (Danswer) <rkuo@onyx.app>
* remove title for slack
* initial working code
* simplification
* improvements
* name change to information_content_model
* avoid boost_score > 1.0
* nit
* EL comments and improvements
Improvements:
- proper import of information content model from cache or HF
- warm up for information content model
Other:
- EL PR review comments
* nit
* requirements version update
* fixed docker file
* new home for model_server configs
* default off
* small updates
* YS comments - pt 1
* renaming to chunk_boost & chunk table def
* saving and deleting chunk stats in new table
* saving and updating chunk stats
* improved dict score update
* create columns for individual boost factors
* RK comments
* Update migration
* manual import reordering
* fix oauth downloading and size limits in confluence
* bump black to get past corrupt hash
* try working around another corrupt package
* fix raw_bytes
---------
Co-authored-by: Richard Kuo (Danswer) <rkuo@onyx.app>
Co-authored-by: Richard Kuo <rkuo@rkuo.com>
* rename agent test script to prevent pytest autodiscovery
* first cut
* fix log message
* fix up typing
* add a sample test
---------
Co-authored-by: Richard Kuo (Danswer) <rkuo@onyx.app>
* functional initial auth modal
* k
* k
* k
* looking good
* k
* k
* k
* k
* update
* k
* k
* misc bunch
* improvements
* k
* address comments
* k
* nit
* update
* k
* early work in progress
* rename utility script
* move actual data seeding to a shareable function
* add test
* make the test pass with the fix
* fix comment
* slight improvements and notes to query history and seeding
* update test
---------
Co-authored-by: Richard Kuo (Danswer) <rkuo@onyx.app>
* add ingress for api and web
* helm setup docs
* add letsencrypt. close blocks
* use pathType ImplementationSpecific as Prefix is deprecated
* fix backend labels. configure nginx routes. update annotations
* fix linting
---------
Co-authored-by: Sajjad Anwar <sajjadkm@gmail.com>
Co-authored-by: Richard Kuo (Danswer) <rkuo@onyx.app>
* early work in progress
* rename utility script
* move actual data seeding to a shareable function
* add test
* make the test pass with the fix
* fix comment
---------
Co-authored-by: Richard Kuo (Danswer) <rkuo@onyx.app>
* * Replaces Amazon and Anthropic Icons with version better suitable for both Dark and Light modes;
* Adds icon for DeepSeek;
* Simplify logic on icon selection;
* Adds entries for Phi-4, Claude 3.7, Ministral and Gemini 2.0 models
* nit
* k
* k
---------
Co-authored-by: Emerson Gomes <emerson.gomes@thalesgroup.com>
* Update text embedding model to version 005 and enhance embedding retrieval process
* re
* Fix formatting issues
* Add support for Bedrock reranking provider and AWS credentials handling
* fix: improve AWS key format validation and error messages
* Fix vertex embedding model crash
* feat: add environment template for local development setup
* Add display name for Claude 3.7 Sonnet model
* Add display names for Gemini 2.0 models and update Claude 3.7 Sonnet entry
* Fix ruff errors by ensuring lines are within 130 characters
* revert to currently default onyx browser settings
* add / fix boto requirements
---------
Co-authored-by: ferdinand loesch <f.loesch@sportradar.com>
Co-authored-by: Ferdinand Loesch <ferdinandloesch@me.com>
Co-authored-by: Richard Kuo (Danswer) <rkuo@onyx.app>
* fix blowing up the entire task on exception and trying to reuse an invalid db session
* list comprehension
---------
Co-authored-by: Richard Kuo (Danswer) <rkuo@onyx.app>
A new setting 'is_ephemeral' has been added to the Slack channel configurations.
Key features/effects:
- if is_ephemeral is set for standard channel (and a Search Assistant is chosen):
- the answer is only shown to user as an ephemeral message
- the user has access to his private documents for a search (as the answer is only shown to them)
- the user has the ability to share the answer with the channel or keep private
- a recipient list cannot be defined if the channel is set up as ephemeral
- if is_ephemeral is set and DM with bot:
- the user has access to private docs in searches
- the message is not sent as ephemeral, as it is a 1:1 discussion with bot
- if is_ephemeral is not set but recipient list is set:
- the user search does *not* have access to their private documents as the information goes to the recipient list team members, and they may have different access rights
- Overall:
- Unless the channel is set to is_ephemeral or it is a direct conversation with the Bot, only public docs are accessible
- The ACL is never bypassed, also not in cases where the admin explicitly attached a document set to the bot config.
* print the test name when it runs
* type hints
* can't reuse session after an exception
* better logging
---------
Co-authored-by: Richard Kuo (Danswer) <rkuo@onyx.app>
* first cut at slack oauth flow
* fix usage of hooks
* fix button spacing
* add additional error logging
* no dev redirect
* early cut at google drive oauth
* second pass
* switch to production uri's
* try handling oauth_interactive differently
* pass through client id and secret if uploaded
* fix call
* fix test
* temporarily disable check for testing
* Revert "temporarily disable check for testing"
This reverts commit 4b5a022a5f.
* support visibility in test
* missed file
* first cut at confluence oauth
* work in progress
* work in progress
* work in progress
* work in progress
* work in progress
* first cut at distributed locking
* WIP to make test work
* add some dev mode affordances and gate usage of redis behind dynamic credentials
* mypy and credentials provider fixes
* WIP
* fix created at
* fix setting initialValue on everything
* remove debugging, fix ??? some TextFormField issues
* npm fixes
* comment cleanup
* fix comments
* pin the size of the card section
* more review fixes
* more fixes
---------
Co-authored-by: Richard Kuo <rkuo@rkuo.com>
Co-authored-by: Richard Kuo (Danswer) <rkuo@onyx.app>
* trying out a fix
* add ability to manually run model tests
* add log dump
* check status code, not text?
* just the model server
* add port mapping to host
* pass through more api keys
* add azure tests
* fix litellm env vars
* fix env vars in github workflow
* temp disable litellm test
---------
Co-authored-by: Richard Kuo (Danswer) <rkuo@onyx.app>
* prompt addition for gpt o-series to encourage markdown formatting of code blocks
* fix to match https://simonwillison.net/tags/markdown/
* chris comment
* chris comment
* thread utils respect contextvars now
* address pablo comments
* removed tenant id from places it was already being passed
* fix rate limit check and pablo comment
* WIP
* implement hard timeout
* fix callbacks
* put back the timeout
* missed a file
* fixes
* try installing playwright deps
* Revert "try installing playwright deps"
This reverts commit 4217427568.
---------
Co-authored-by: Richard Kuo (Danswer) <rkuo@onyx.app>
Co-authored-by: Richard Kuo <rkuo@rkuo.com>
* added timeouts for agent llm calls
* timing suggestions in agent config
* improved timeout that actually exits early
* added new global timeout and connection timeout distinction
* fixed error raising bug and made entity extraction recoverable
* warnings and refactor
* mypy
---------
Co-authored-by: joachim-danswer <joachim@danswer.ai>
* wip checkpointing/continue on failure
more stuff for checkpointing
Basic implementation
FE stuff
More checkpointing/failure handling
rebase
rebase
initial scaffolding for IT
IT to test checkpointing
Cleanup
cleanup
Fix it
Rebase
Add todo
Fix actions IT
Test more
Pagination + fixes + cleanup
Fix IT networking
fix it
* rebase
* Address misc comments
* Address comments
* Remove unused router
* rebase
* Fix mypy
* Fixes
* fix it
* Fix tests
* Add drop index
* Add retries
* reset lock timeout
* Try hard drop of schema
* Add timeout/retries to downgrade
* rebase
* test
* test
* test
* Close all connections
* test closing idle only
* Fix it
* fix
* try using null pool
* Test
* fix
* rebase
* log
* Fix
* apply null pool
* Fix other test
* Fix quality checks
* Test not using the fixture
* Fix ordering
* fix test
* Change pooling behavior
* better propagation of exceptions up the stack
* remove debug testing
* refactor the watchdog more to emit data consistently at the end of the function
* enumerate a lot more terminal statuses
* handle more codes
* improve logging
* handle "-9"
* single line exception logging
* typo/grammar
---------
Co-authored-by: Richard Kuo (Danswer) <rkuo@onyx.app>
* ignore result when using send_task on lightweight tasks
* fix ignore_result
---------
Co-authored-by: Richard Kuo (Danswer) <rkuo@onyx.app>
Co-authored-by: Richard Kuo <rkuo@rkuo.com>
* no thread local locks in callbacks and raise permission sync timeout by a lot based on empirical log observations
* more fixes
---------
Co-authored-by: Richard Kuo (Danswer) <rkuo@onyx.app>
* move indexing
* all monitor work moved
* reacquire lock more
* remove monitor task completely
* fix import
* fix pruning finalization
* no multiplier on system/cloud tasks
* monitor queues every 30 seconds in the cloud
---------
Co-authored-by: Richard Kuo (Danswer) <rkuo@onyx.app>
* dedupe make_private_persona and update test
* add comment
* comments, and just have duplicate user id's for the test instead of modifying edit
* found the magic word
---------
Co-authored-by: Richard Kuo (Danswer) <rkuo@onyx.app>
* add validation for pruning
* fix missing class
* get external group sync validation working
* backport fix for pruning check
* fix pruning
* log the payload id
* remove scan_iter from pruning
* missed removed scan_iter, also remove other scan_iters and replace with sscan_iter of the lookup table
* external group sync needs active signal. h
* log the payload id when the task starts
* log the payload id in more places
* use the replica
* increase primary pool and slow down beat
* scale sql pool based on concurrency
* fix concurrency
* add debugging for external group sync and tenant
* remove debugging and fix payload id
---------
Co-authored-by: Richard Kuo (Danswer) <rkuo@onyx.app>
* WIP
* migrate most beat tasks to fan out strategy
* fix kwargs
* migrate EE tasks
* lock on the task_name level
* typo fix
* transform beat tasks for cloud
* cloud multiplier is only for cloud tasks
* bumpity
---------
Co-authored-by: Richard Kuo (Danswer) <rkuo@onyx.app>
* WIP
* trigger indexing immediately when the ccpair is created
* add some logging and indexing trigger to the mock-credential endpoint
* better comments
* fix integration test
---------
Co-authored-by: Richard Kuo (Danswer) <rkuo@onyx.app>
* try adding back some params
* raise timeout
* update chromatic version
* fix typo
* use chromatic imports
* update gitignore
* slim down the config file
* update readme
---------
Co-authored-by: Richard Kuo (Danswer) <rkuo@onyx.app>
* initial commit for helm chart refactoring
* Continue refactoring helm. I was able to use helm to deploy all of the apps to a cluster in aws. The bottleneck was setting up PVC dynamic provisioning.
* use default storage class
* Fix linter errors
* Fix broken helm test
* update
* Helm chart fixes
* remove reference to ebsstorage
* Fix linter errors
---------
Co-authored-by: jpb80 <jordan.buttkevitz@gmail.com>
<strong>[Onyx](https://www.onyx.app/)</strong> (formerly Danswer) is the AI Assistant connected to your company's docs, apps, and people.
Onyx provides a Chat interface and plugs into any LLM of your choice. Onyx can be deployed anywhere and for any
scale - on a laptop, on-premise, or to cloud. Since you own the deployment, your user data and chats are fully in your
own control. Onyx is dual Licensed with most of it under MIT license and designed to be modular and easily extensible. The system also comes fully ready
for production usage with user authentication, role management (admin/basic users), chat persistence, and a UI for
configuring AI Assistants.
<strong>[Onyx](https://www.onyx.app/)</strong> (formerly Danswer) is the AI platform connected to your company's docs, apps, and people.
Onyx provides a feature rich Chat interface and plugs into any LLM of your choice.
Keep knowledge and access controls sync-ed across over 40 connectors like Google Drive, Slack, Confluence, Salesforce, etc.
Create custom AI agents with unique prompts, knowledge, and actions that the agents can take.
Onyx can be deployed securely anywhere and for any scale - on a laptop, on-premise, or to cloud.
Onyx also serves as a Enterprise Search across all common workplace tools such as Slack, Google Drive, Confluence, etc.
By combining LLMs and team specific knowledge, Onyx becomes a subject matter expert for the team. Imagine ChatGPT if
it had access to your team's unique knowledge! It enables questions such as "A customer wants feature X, is this already
supported?" or "Where's the pull request for feature Y?"
For more details on the Admin UI to manage connectors and users, check out our
<strong><ahref="https://www.youtube.com/watch?v=geNzY1nbCnU">Full Video Demo</a></strong>!
## Deployment
**To try it out for free and get started in seconds, check out [Onyx Cloud](https://cloud.onyx.app/signup)**.
Onyx can easily be run locally (even on a laptop) or deployed on a virtual machine with a single
Onyx can also be run locally (even on a laptop) or deployed on a virtual machine with a single
`docker compose` command. Checkout our [docs](https://docs.onyx.app/quickstart) to learn more.
We also have built-in support for deployment on Kubernetes. Files for that can be found [here](https://github.com/onyx-dot-app/onyx/tree/main/deployment/kubernetes).
We also have built-in support for high-availability/scalable deployment on Kubernetes.
- Chat UI with the ability to select documents to chat with.
- Create custom AI Assistants with different prompts and backing knowledge sets.
-Connect Onyx with LLM of your choice (self-host for a fully airgapped solution).
-Document Search + AI Answers for natural language queries.
-Connectors to all common workplace tools like Google Drive, Confluence, Slack, etc.
- Slack integration to get answers and search results directly in Slack.
## 🔍 Other Notable Benefits of Onyx
- Custom deep learning models for indexing and inference time, only through Onyx + learning from user feedback.
-Flexible security features like SSO (OIDC/SAML/OAuth2), RBAC, encryption of credentials, etc.
-Knowledge curation features like document-sets, query history, usage analytics, etc.
-Scalable deployment options tested up to many tens of thousands users and hundreds of millions of documents.
## 🚧 Roadmap
-Chat/Prompt sharing with specific teammates and user groups.
- Multimodal model support, chat with images, video etc.
- Choosing between LLMs and parameters during chat session.
- Tool calling and agent configurations options.
- New methods in information retrieval (StructRAG, LightGraphRAG, etc.)
-Personalized Search
- Organizational understanding and ability to locate and suggest experts from your team.
- Code Search
- SQL and Structured Query Language
## Other Notable Benefits of Onyx
- User Authentication with document level access management.
- Best in class Hybrid Search across all sources (BM-25 + prefix aware embedding models).
- Admin Dashboard to configure connectors, document-sets, access, etc.
- Custom deep learning models + learn from user feedback.
- Easy deployment and ability to host Onyx anywhere of your choosing.
## 🔌 Connectors
Keep knowledge and access up to sync across 40+ connectors:
Efficiently pulls the latest changes from:
- Slack
- GitHub
- Google Drive
- Confluence
- Slack
- Gmail
- Salesforce
- Microsoft Sharepoint
- Github
- Jira
- Zendesk
- Gmail
- Notion
- Gong
-Slab
-Linear
- Productboard
- Guru
- Bookstack
- Document360
- Sharepoint
- Hubspot
-Microsoft Teams
-Dropbox
- Local Files
- Websites
- And more ...
## 📚 Editions
See the full list [here](https://docs.onyx.app/connectors).
## 📚 Licensing
There are two editions of Onyx:
- Onyx Community Edition (CE) is available freely under the MIT Expat license. This version has ALL the core features discussed above. This is the version of Onyx you will get if you follow the Deployment guide above.
- Onyx Enterprise Edition (EE) includes extra features that are primarily useful for larger organizations. Specifically, this includes:
- Single Sign-On (SSO), with support for both SAML and OIDC
- Role-based access control
- Document permission inheritance from connected sources
- Usage analytics and query history accessible to admins
- Whitelabeling
- API key authentication
- Encryption of secrets
- And many more! Checkout [our website](https://www.onyx.app/) for the latest.
- Onyx Community Edition (CE) is available freely under the MIT Expat license. Simply follow the Deployment guide above.
- Onyx Enterprise Edition (EE) includes extra features that are primarily useful for larger organizations.
For feature details, check out [our website](https://www.onyx.app/pricing).
2. For self-hosting the Enterprise Edition, contact us at [founders@onyx.app](mailto:founders@onyx.app) or book a call with us on our [Cal](https://cal.com/team/onyx/founders).
2. For self-hosting, contact us at [founders@onyx.app](mailto:founders@onyx.app) or book a call with us on our [Cal](https://cal.com/team/onyx/founders).
## 💡 Contributing
Looking to contribute? Please check out the [Contribution Guide](CONTRIBUTING.md) for more details.
## ⭐Star History
[](https://star-history.com/#onyx-dot-app/onyx&Date)
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.