Commit Graph

775 Commits

Author SHA1 Message Date
Timothy Carambat
d6f0d305ab
Enable real-time agent tool call streaming for all providers (#4279)
* WIP agentic tool call streaming
- OpenAI
- Anthropic
- Azure OpenAI

* WIP rest of providers EXCLUDES Bedrock and GenericOpenAI

* patch untooled complete/streaming to use chatCallback provider from provider class and not assume OpenAI client struct
example: Ollama

* modify ollama to function with its own overrides
normalize completion/stream outputs across providers/untooled

* dev build

* fix message sanization for anthropic agent streaming

* wip fix anthropic agentic streaming sanitization

* patch gemini, webgenui, generic aibitat providers + disable providers unable to test

* refactor anthropic aibitat provider for empty message and tool call formatting

* Add frontend missing prop check
update Azure for streaming support
update Gemini to streamting support on gemini-* models
generic OpenAI disable streaming
verify localAI support
verify NVIDIA Nim support

* DPAIS, remove temp from call, support streaming'

* remove 0 temp to remove possibility of bad temp error/500s/400s

* Patch condition where model is non-streamable and no tools are present or called resulting in the provider `handleFunctionCallChat` being called - which returns a string.

This would then fail in Untooled.complete since response would be a string and not the expected `response.choices?.[0]?.message`

Modified this line to handle both conditions for stream/non-streaming and tool presence or lack thereof

* Allow generic Openai to be streamable since using untooled it should work fine
honor disabled streaming for provider where that concern may apply for regular chats

* rename function and more gemini-specific function to gemini provider

* add comments for readability
.complete on azure should be non-streaming as this is the sync response

* migrate CometAPI, but disable as we cannot test

---------

Co-authored-by: shatfield4 <seanhatfield5@gmail.com>
2025-10-01 10:17:18 -07:00
Timothy Carambat
cd34063111
Patch OpenAI metrics (#4458)
resolves #4457
2025-09-30 15:19:34 -07:00
timothycarambat
d800f8a073 Merge branch 'master' of github.com:Mintplex-Labs/anything-llm 2025-09-30 14:35:41 -07:00
timothycarambat
d1e39e1753 Fix issue where filenames with spaces could be marked as orphaned and pruned from threads they are attached to - resulting in the model not seeing a file during chat after the backend boots 2025-09-30 14:35:14 -07:00
Marcello Fitton
96bf127696
New Default System Prompt Variables (User ID, Workspace ID, & Workspace Name) (#4414)
* Fix system prompt variable color logic by removing unused variable type from switch statement and adding new types.

* Add workspace id, name and user id as default system prompt variables

* Combine user and workspace  variable evaluations into a single if statment, reducing redundant code.

* minor refactor

* add systemPromptVariable expandSystemPromptVariables test cases

---------

Co-authored-by: timothycarambat <rambat1010@gmail.com>
2025-09-29 14:32:56 -07:00
Marcello Fitton
7ca2753c24
Sanitize Metadata Before PG Vector Database Insertion (#4434)
* Fix JSDOC for updateOrCreateCollection

* Add sanitizeForJsonb method to PGVector for safe JSONB handling

This new method recursively sanitizes values intended for JSONB storage, removing disallowed control characters and ensuring safe insertion into PostgreSQL. The method is integrated into the vector insertion process to sanitize metadata before database operations.

* Add unit tests for PGVector.sanitizeForJsonb method

This commit introduces a comprehensive test suite for the PGVector.sanitizeForJsonb method, ensuring it correctly handles various input types, including null, undefined, strings with disallowed control characters, objects, arrays, and Date objects. The tests verify that the method sanitizes inputs without mutating the original data structures.

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2025-09-29 13:49:45 -07:00
Marcello Fitton
eb77876127
Add HTTP request/response logging middleware for development mode (#4425)
* Add HTTP request logging middleware for development mode

- Introduced httpLogger middleware to log HTTP requests and responses.
- Enabled logging only in development mode to assist with debugging.

* Update httpLogger middleware to disable time logging by default

* Add httpLogger middleware for development mode in collector service

* Refactor httpLogger middleware to rename timeLogs parameter to enableTimestamps for clarity

* Make HTTP Logger only mount in development and environment flag is enabled.

* Update .env.example to clarify HTTP Logger configuration comments

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2025-09-29 13:33:15 -07:00
Timothy Carambat
c8f13d5f27
Enable custom HTTP response timeout for ollama (#4448) 2025-09-29 12:32:55 -07:00
Marcello Fitton
ac444c8fa5
Change incorrect notation of Weaviate to PG Vector in env.example (#4439)
Change incorrect notation of Weaviate to PG Vector
2025-09-29 10:01:01 -07:00
Marcello Fitton
6855bbf695
Refactor Class Name Logging (#4426)
* Add className property to various LLM and embedder classes to fix logging bug after minification

* Fix bug with this.log method by applying the missing private field symbol
2025-09-25 15:34:19 -10:00
Marcello Fitton
2226f29a96
Add PostgreSQL vector extension in createTableIfNotExists function (#4430)
* Add PostgreSQL vector extension in createTableIfNotExists function

* move extension sql to function

---------

Co-authored-by: shatfield4 <seanhatfield5@gmail.com>
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2025-09-25 15:16:03 -10:00
Timothy Carambat
9466f67162
Update the timeout value on all stream-timeout providers: (#4412)
- OpenRouter
- Novita
- CometAPI
updated to 3,000ms default with 500ms min
2025-09-19 08:52:20 -07:00
Sean Hatfield
1209606d9a
Migrate OpenAI LLM provider to use Responses API (#4404)
* migrate openai llm provider to use responses api

* add back image support

* dont recalc tokens from OpenAI since we get metrics back

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2025-09-18 21:15:19 -07:00
Chaser Huang
226802d35a
API request delay for Generic OpenAI embedding engine (#4317)
* Add ENV to configure api request delay for generic open ai embedding engine

* yarn lint formatting

* refactor

---------

Co-authored-by: timothycarambat <rambat1010@gmail.com>
2025-09-17 20:53:41 -07:00
Timothy Carambat
95557ee16f
Allow user to specify args for chromium process so they dont need SYS_ADMIN on container. (#4397)
* allow user to specify args for chromium process so they dont need SYS_ADMIN perms

* use arg flag content

* update console outputs
2025-09-17 16:31:08 -07:00
Timothy Carambat
7864e1a970
Report sources in API responses on finalized chunk (#4396) 2025-09-17 15:16:35 -07:00
Marcello Fitton
50d4a198a4
Add User-Agent header on the requests sent by Generic OpenAI providers. (#4393)
* Add User-Agent header on the requests sent by Generic OpenAI providers.

* Moved getAnythingLLMUserAgent helper fn to server/endpoints/utils.js and changed fallback version string to "unknown"

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2025-09-17 13:08:18 -07:00
Timothy Carambat
e81bd471dd
patch folder name GET request response (#4395)
* patch folder name GET request response

* fix response cb
2025-09-17 13:05:11 -07:00
Timothy Carambat
cd063af4d1
Add support for SIMPLE_SSO_NO_LOGIN_REDIRECT config setting (#4394)
* Add support for `SIMPLE_SSO_NO_LOGIN_REDIRECT` config setting

* reset changes on simple page

* redirect at root

* remove paths change
2025-09-17 12:51:00 -07:00
Jonas Stawski
b8d4cc3454
Added metadata parameter to document/upload, document/upload/{folderName}, and document/upload-link (#4342)
* Added the ability to pass in metadata to the /document/upload/{folderName} endpoint

* Added the ability to pass in metadata to the /document/upload-link endpoint

* feat: added metadata to document/upload api endpoint

* simplify optional metadata in document dev api endpoints

* lint

* patch handling of metadata in dev api

* Linting, small comments

---------

Co-authored-by: jstawskigmi <jstawski@getmyinterns.org>
Co-authored-by: shatfield4 <seanhatfield5@gmail.com>
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2025-09-17 11:17:29 -07:00
TensorNull
5922349bb7
feat: Implement CometAPI integration for chat completions and model m… (#4379)
* feat: Implement CometAPI integration for chat completions and model management

- Added CometApiLLM class for handling chat completions using CometAPI.
- Implemented model synchronization and caching mechanisms.
- Introduced streaming support for chat responses with timeout handling.
- Created CometApiProvider class for agent interactions with CometAPI.
- Enhanced error handling and logging throughout the integration.
- Established a structure for managing function calls and completions.

* linting

---------

Co-authored-by: timothycarambat <rambat1010@gmail.com>
2025-09-16 14:38:49 -07:00
Sean Hatfield
e31465a639
Export image support for JSON and JSONL (#4359)
* export image support for json and jsonl

* add tests and cleanup functionality

* add test for convertTo prepare function

* comment

---------

Co-authored-by: timothycarambat <rambat1010@gmail.com>
2025-09-03 10:30:57 -07:00
timothycarambat
6358d087c2 Fix /openai/models compat endpoint to return correct response schema
resolves #4295
2025-08-15 14:46:51 -07:00
timothycarambat
a4a84f9bdd forgot 1.8.5 tag :) 2025-08-14 17:43:55 -07:00
timothycarambat
e6a33ec091 patch paths 2025-08-14 13:40:57 -07:00
Sean Hatfield
c6e1b9c3e2
Chroma Cloud vector db provider (#4273)
* add chroma cloud as new vector db provider

* update docker example env

* extend chroma class to chroma cloud

* update readme

---------

Co-authored-by: timothycarambat <rambat1010@gmail.com>
2025-08-12 16:21:14 -07:00
Neha Prasad
a230a44f5c
feat: Add Exa as a Search Provider (#4258)
* Added exa-search case to the search provider switch in web-browsing.js

* Added ExaSearchOptions component for API key input

* update

* Patch missing image crashing UI
Fix issue where ENV key did not exist or was saved on click
Update copy for provider
Add Docs for ENV keys for manual placements
update systemssettings for returning key saved to UI

---------

Co-authored-by: timothycarambat <rambat1010@gmail.com>
2025-08-11 09:46:50 -07:00
Timothy Carambat
0fb33736da
Workspace Chat with documents overhaul (#4261)
* Create parse endpoint in collector (#4212)

* create parse endpoint in collector

* revert cleanup temp util call

* lint

* remove unused cleanupTempDocuments function

* revert slug change
minor change for destinations

---------

Co-authored-by: timothycarambat <rambat1010@gmail.com>

* Add parsed files table and parse server endpoints (#4222)

* add workspace_parsed_files table + parse endpoints/models

* remove dev api parse endpoint

* remove unneeded imports

* iterate over all files + remove unneeded update function + update telemetry debounce

* Upload UI/UX context window check + frontend alert (#4230)

* prompt user to embed if exceeds prompt window + handle embed + handle cancel

* add tokenCountEstimate to workspace_parsed_files + optimizations

* use util for path locations + use safeJsonParse

* add modal for user decision on overflow of context window

* lint

* dynamic fetching of provider/model combo + inject parsed documents

* remove unneeded comments

* popup ui for attaching/removing files + warning to embed + wip fetching states on update

* remove prop drilling, fetch files/limits directly in attach files popup

* rework ux of FE + BE optimizations

* fix ux of FE + BE optimizations

* Implement bidirectional sync for parsed file states
linting
small changes and comments

* move parse support to another endpoint file
simplify calls and loading of records

* button borders

* enable default users to upload parsed files but NOT embed

* delete cascade on user/workspace/thread deletion to remove parsedFileRecord

* enable bgworker with "always" jobs and optional document sync jobs
orphan document job: Will find any broken reference files to prevent overpollution of the storage folder. This will run 10s after boot and every 12hr after

* change run timeout for orphan job to 1m to allow settling before spawning a worker

* linting and cleanup pr

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>

* dev build

* fix tooltip hiding during embedding overflow files

* prevent crash log from ERRNO on parse files

* unused import

* update docs link

* Migrate parsed-files to GET endpoint
patch logic for grabbing models names from utils
better handling for undetermined context windows (null instead of Pos_INIFI)
UI placeholder for null context windows

* patch URL

---------

Co-authored-by: Sean Hatfield <seanhatfield5@gmail.com>
2025-08-11 09:26:19 -07:00
start-life
20468d7053
Update common.js Hebrew language update (#4241)
* Update common.js

Hebrew language update

* linting

---------

Co-authored-by: timothycarambat <rambat1010@gmail.com>
2025-08-05 09:55:08 -07:00
Timothy Carambat
a9d9f9cdfd
Add custom JWT TTL (#4234)
resolves #4224
2025-08-01 10:39:38 -07:00
Timothy Carambat
c218a0dfe3
Mobile sync support (#4173)
* WIP on mobile connections
todo: register devices
todo: data sync or connection

* improve connection flow and registration
add streaming from service
TODO: user scoping

* dev build mobile support

* fix path

* handle relative URLs

* handle localhost access in product

* add device de-register

* sync styles

* move UI to be out of the normal path since beta only

* Add user scoping to mobile connection requests
Remigrate DB for user associations
Implement temp token registration to prevent unauthorized device registration requests
cleanup middlewares
2025-07-31 12:28:03 -07:00
timothycarambat
4b7932f9e1 Fix agent iam_role implied agentic tool calling
resolves #4193
contrib: @bechir2000
2025-07-31 09:56:08 -07:00
Neha Prasad
ea5f66978b
fix: API export-chats endpoint function import error (#4220)
fix: resolve prepareWorkspaceChatsForExport function not found error in API export-chats endpoint
2025-07-30 12:19:27 -07:00
Timothy Carambat
a0af24624d
Update check for validFuncCall to only check required args and for undefined options (#4214)
* Update check for `validFuncCall` to only check required args and for undefined options

* update

* remove unused helper class func
2025-07-30 11:59:23 -07:00
Sean Hatfield
8c7923a283
Fix app version metrics endpoint (#4209)
fix app version metrics endpoint
2025-07-28 15:37:06 -07:00
Roman Wu
78cbb06c57
Modify the PostgreSQL SQL connector to support querying tables from schemas other than the default public schema. (#4202)
* Add PostgreSQL schema support to SQL connector

- Add schema configuration option to PostgreSQL connector
- Update SQL queries to filter by specified schema
- Add schema input field to frontend connection modal (PostgreSQL only)
- Default to 'public' schema when no custom schema specified
- Add getQualifiedTableName() method for schema.table format

* Fix code formatting after linting

* Update Postgresql.js

* add back removal of ending curly brace

* Update Postgresql.js

* add back removal of ending curly brace (again?)

---------

Co-authored-by: timothycarambat <rambat1010@gmail.com>
2025-07-28 08:43:15 -07:00
Timothy Carambat
2c19dd09ed
Native Embedder model selection (incl: Multilingual support) (#3835)
* WIP on embedder selection
TODO: apply splitting and query prefixes (if applicable)

* wip on upsert

* Support base model
support nomic-text-embed-v1
support multilingual-e5-small
Add prefixing for both embedding and query for RAG tasks
Add chunking prefix to all vector dbs to apply prefix when possible
Show dropdown and auto-pull on new selection

* norm translations

* move supported models to constants
handle null seelction or invalid selection on dropdown
update comments

* dev

* patch text splitter maximums for now

* normalize translations

* add tests for splitter functionality

* normalize

---------

Co-authored-by: shatfield4 <seanhatfield5@gmail.com>
2025-07-22 10:07:20 -07:00
Sean Hatfield
31a8ead823
Fix multimodal chats via openai compat api (#4135)
* fix multimodal chats via openai compat api

* lint

* add tests for multi-modal content in openai compat endpoint

* refactor to normalize how openai attachments are handled

* uncheck file

* rewrite tests, autodetect mime from dataurl, and spread attachments from prompt

* lint

* revert and fix tests

---------

Co-authored-by: timothycarambat <rambat1010@gmail.com>
2025-07-22 09:57:32 -07:00
Sean Hatfield
6d6bd14622
Moonshot AI LLM & agent provider (#4178)
* add moonshot ai LLM & agent provider

* fix moonshot agent calling

* handle attachments/fix moonshot llm provider

* update docs/example env

* add moonshot to onboarding privacy

* add moonshot to onboarding llm preference

* update privacy for moonshot ai

* update logo higher res

* remove caching and use modelmap
2025-07-22 09:56:51 -07:00
Sean Hatfield
ea8ba2f7f2
Clear cached docs on text splitter changes (#4163)
* clear cached docs on text splitter changes

* update warning message and title

* remove unsused translation keys

* wrap trycatch

---------

Co-authored-by: timothycarambat <rambat1010@gmail.com>
2025-07-17 11:03:18 -07:00
Timothy Carambat
043cb1d085
Add model field parameter for generic OpenAI TTS (#4171)
resolves #4165
2025-07-17 10:28:51 -07:00
timothycarambat
c535c69345 1.8.4 tag update 2025-07-16 10:40:39 -07:00
Sean Hatfield
49ea545d7f
SQL preflight connection validation (#4150)
* wip sql connection string validation

* handle failed sql connections in frontend

* sql preflight connection validation on modal save

* revert unneeded be/fe changes

* linting, form updates

---------

Co-authored-by: timothycarambat <rambat1010@gmail.com>
2025-07-16 09:02:39 -07:00
Sean Hatfield
fe1dfb1fde
Add option to enable encryption on MSSQL Server db (#4134)
* add option to enable encryption on mssql server dbs

* add tests for ConnectionStringParser
2025-07-15 15:26:38 -07:00
Sean Hatfield
1cd0cc32b8
Fix chunking/snippet logs for clarity (#4129)
update chunking/snippet logs for clarity
2025-07-11 10:54:54 -07:00
Timothy Carambat
ea956f4d77
Add ability to search workspace and threads (#4120)
* Add ability to search workspace and threads

* fix height

* styling

* update placeholder

* Translations PR (#4122)
2025-07-10 16:42:10 -07:00
timothycarambat
ae2fa8805c resolves #4040 2025-07-10 13:20:39 -07:00
Sean Hatfield
49293e7dd7
Configurable message limit for embed chat widget (#4114)
* configurable message limit for embed widget

* remove console log

* make field optional + add fallback

* rework validation logic

* lint

* remove field specific guard, it cannot be lte 0 like all other fields

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2025-07-10 12:45:53 -07:00
Sean Hatfield
5d60047dc7
Handle BigInt in message response (#4110)
* wip handle bigints in message response

* extend bigint protoype to handle bigint stringification + add test

* unset unrelated file

* update tests, simplify implementation;

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2025-07-10 12:33:34 -07:00
Timothy Carambat
8001d9ddeb
update 1.8.3 tags for release (#4109)
* update 1.8.3 tags for release

* whoops, botched news
2025-07-09 12:17:56 -07:00