Commit Graph

63 Commits

Author SHA1 Message Date
Timothy Carambat
e344109bcb
Update Lemonade Integration to support v10.1.0 changes (#5378)
Update Lemonade Integraion
Fix ApiKey nullification check causing hard throw
2026-04-07 11:21:28 -07:00
Marcello Fitton
42a41201a8
feat: Document Embedding Status Events | Refactor Document Embedding to Job Queue and Forked Process (#5254)
* implement native embedder job queue

* persist embedding progress across renders

* add development worker timeouts

* change to static method

* native reranker

* remove useless return

* lint

* simplify

* make embedding worker timeout value configurable by admin

* add event emission for missing data

* lint

* remove onProgress callback argument

* make rerank to rerankDirect

* persists progress state across app reloads

* remove chunk level progress reporting

* remove unuse dvariable

* make NATIVE_RERANKING_WORKER_TIMEOUT user configurable

* remove dead code

* scope embedding progress per-user and clear stale state on SSE reconnect

* lint

* revert vector databases and embedding engines to call their original methods

* simplify rerank

* simplify progress fetching by removing updateProgressFromApi

* remove duplicate jsdoc

* replace sessionStorage persistence with server-side history replay for embedding progress

* fix old comment

* fix: ignore premature SSE all_complete when embedding hasn't started yet

The SSE connection opens before the embedding API call fires, so the
server sees no buffered history and immediately sends all_complete.
Firefox dispatches this eagerly enough that it closes the EventSource
before real progress events arrive, causing the progress UI to clear
and fall back to the loading spinner. Chrome's EventSource timing
masks the race.

Track slugs where startEmbedding was called but no real progress event
has arrived yet via awaitingProgressRef. Ignore the first all_complete
for those slugs and keep the connection open for the real events.

* reduce duplication with progress emissions

* remove dead code

* refactor: streamline embedding progress handling

Removed unnecessary tracking of slugs for premature all_complete events in the EmbeddingProgressProvider. Updated the server-side logic to avoid sending all_complete when no embedding is in progress, allowing the connection to remain open for real events. Adjusted the embedding initiation flow to ensure the server processes the job before the SSE connection opens, improving the reliability of progress updates.

* fix stale comment

* remove unused function

* fix event emissions for document creation failure

* refactor: move Reranking Worker Idle Timeout input to LanceDBOptions component

Extracted the Reranking Worker Idle Timeout input from GeneralEmbeddingPreference and integrated it into the LanceDBOptions component. This change enhances modularity and maintains a cleaner structure for the settings interface.

* lint

* remove unused hadHistory vars

* refactor workspace directory by hoisting component and converting into functions

* moved EmbeddingProgressProvider to wrap Document Manager Modal

* refactor embed progress SSE connection to use fetchEventSource instead of native EventSource API.

* refactor message handlng into a function and reduce duplication

* refactor: utilize writeResponseChunk for event emissions in document embedding progress SSE

* refactor: explicit in-proc embedding and rerank methods that are called by workers instead of process.send checks

* Abstract EmbeddingProgressBus and Worker Queue into modules

* remove error and toast messages on embed process result

* use safeJsonParse

* add chunk-level progress events with per-document progress bar in UI

* remove unused parameter

* rename all worker timeout references to use ttl | remove ttl updating from UI

* refactor: pass embedding context through job payload instead of global state

* lint

* add graceful shutdown for workers

* apply figma styles

* refactor embedding worker to use bree

* use existing WorkerQueue class as the management layer for jobs

* lint

* revert all reranking worker changes back to master state

Removes the reranking worker queue, rerankViaWorker/rerankInProcess
renames, and NATIVE_RERANKING_WORKER_TTL config so this branch
only contains the embedding worker job queue feature.

* remove breeManaged flag — WorkerQueue always spawns via Bree

* fix prompt embedding bug

* have embedTextInput call embedChunksInProcess

* add message field to `process.send()`

* remove nullish check and error throw

* remove bespoke graceful shutdown logix

* add spawnWorker method and asbtract redudant flows into helper methods

* remove unneeded comment

* remove recomputation of TTL value

* frontend cleanup and refactor

* wip on backend refactor

* backend overhaul

* small lint

* second pass

* add logging, update endpoint

* simple refactor

* add reporting to all embedder providers

* fix styles

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-04-06 17:00:15 -07:00
Neha Prasad
09d2161476
fix(lemonade): throw on embedding failures instead of returning empty (#5325)
* fix(lemonade): throw on embedding failures instead of returning empty vectors

* use class logger

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-04-02 14:57:54 -07:00
Marcello Fitton
0bfd27c6df
feat: add optional API key support for Lemonade provider (#5281)
* add API key param to Lemonade LLM Provider and Embedding Provider

* add LEMONADE_LLM_API_KEY to .env.example

* add api key to aibitat provider

* fix api key from being sent to frontend

* fix tooltip id

* add null fallback for `apiKey`

* remove console log

* add missing api keys

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-03-30 14:44:12 -07:00
Timothy Carambat
4e3bcfc616
Add custom fetch to embedder for Ollama (#5180)
Refactor ollama timeout to be shared. Add custom fetch to embedder for ollama as well
2026-03-09 11:47:00 -07:00
Marcello Fitton
4a4378ed99
chore: add ESLint to /server (#5126)
* add eslint config to server

* add break statements to switch case

* add support for browser globals and turn off empty catch blocks

* disable lines with useless try/catch wrappers

* format

* fix no-undef errors

* disbale lines violating no-unsafe-finally

* ignore syncStaticLists.mjs

* use proper null check for creatorId instead of unreachable nullish coalescing

* remove unneeded typescript eslint comment

* make no-unused-private-class-members a warning

* disable line for no-empty-objects

* add new lint script

* fix no-unused-vars violations

* make no-unsued-vars an error

---------

Co-authored-by: shatfield4 <seanhatfield5@gmail.com>
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-03-05 16:32:45 -08:00
Timothy Carambat
a6ba5a4034
Lemonade integration (#5077)
* lemonade integration

* lemonade embedder

* log

* load model

* readme updates

* update embedder privacy entry
2026-02-27 11:02:38 -08:00
Timothy Carambat
1c91d369c3
set embedder output dimensions for LocalAI and Gemini (gemini-embedding-001) (#4980) 2026-02-10 08:28:34 -08:00
Timothy Carambat
152ac93e27 remove deprecated value for Google embedding 2026-02-08 14:05:34 -08:00
Timothy Carambat
97b140b4b4
Update LMStudio LLM & Embedder for API token (#4948)
- Updates Option panels to be consistent for other providers
adds API key to all LMStudio API calls
2026-01-30 11:13:32 -08:00
Marcello Fitton
7faee90ecc
Add Auth Token to Ollama Embedding Client (#4766)
* Enhance OllamaEmbedder to support authentication by adding an authorization token in headers for client initialization.

* Add optional Auth Token input for Ollama embedding options

* move info elements

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2025-12-12 14:30:22 -08:00
Sean Hatfield
66e44f65b4
Add batch embedding support for Ollama embedding provider (#4553)
* add batch embedding support for ollama embedding provider

* lint

* simplify ollama embedder input
2025-11-25 13:03:47 -08:00
Colin Perry
157e3e4b38
Feat/add openrouter embedding models (#4682)
* implemented openrouter embedding model support

* ran yarn lint

* data handling entry

---------

Co-authored-by: timothycarambat <rambat1010@gmail.com>
2025-11-25 11:16:16 -08: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
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
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
1cd0cc32b8
Fix chunking/snippet logs for clarity (#4129)
update chunking/snippet logs for clarity
2025-07-11 10:54:54 -07:00
Sean Hatfield
fc55baf69a
LMStudio 0 value embeddings patch (#4084)
patch lmstudio encoding_format to fix all embeddings as 0 value
2025-07-01 18:05:58 -07:00
Timothy Carambat
0e1de19408
Respect Max Chunk Len set - Generic OpenAI Embedder connection (#3838)
Respect Max Chunk Len set
resolves #3834
2025-05-16 11:18:24 -07:00
Sebastián Darío Ramírez
4f23e44756
Add gemini-embedding-exp-03-07 model support (#3767)
* adds gemini-embedding-exp-03-07 support

* unset random changes, make model map

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2025-05-05 09:37:01 -07:00
Timothy Carambat
f9ef5840cb
Remove @google/generative-ai from AnythingLLM (#3740)
* Remove  from AnythingLLM
Migrate to full use of OpenAI Compatible endpoints'
resolves #3618

* lint
2025-04-29 11:39:56 -07:00
Shinya Suzuki
cd900f9e4c
Replace @azure/openai with openai, and update openai to version 4.95.1 (#3691)
* Replace @azure/openai to OpenAI lib

* Remove @azure/openai dependency and update openai to version 4.95.1

* linting

* update logging
fix translation dictionary error

* remove bad ENV key that DNE
linting
Patch Azure OpenAI
Migrate Azure Agent provider to use OpenAI Schema for tool calling performance

* unset

* migrate azure to use default OAI stream handler

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2025-04-29 11:21:39 -07:00
Timothy Carambat
1b59295f89
Refactor Gemini to use OpenAI interface API (#3616)
* Refactor Gemini to use OpenAI interface API

* add TODO

* handle errors better (gemini)

* remove unused code
2025-04-07 17:18:31 -07:00
Timothy Carambat
df8d34d31e
Enable num_ctx to match defined chunk length in ollama embedder (#3129)
* Enable `num_ctx` to match defined chunk length in ollama embedder

* remove console
2025-02-05 15:46:39 -08:00
timothycarambat
c2c4f63643 bump cdn 2025-02-05 10:30:43 -08:00
timothycarambat
4d5d8d4dec patch gemini embedding key preference
resolves #2972
2025-01-14 08:20:57 -08:00
ReindeerFlotilla
be886f7d61
feat: add support for voyage-3-large and voyage-code-3 embedding models (#2955)
* feat: add support for voyage-3-large and voyage-code-3 embedding models

- Add voyage-3-large and voyage-code-3 to VoyageAiOptions dropdown
- Update getMaxEmbeddingLength to support 32k context for new models
- Update .env.example with new model options

* unset env example

---------

Co-authored-by: timothycarambat <rambat1010@gmail.com>
2025-01-08 17:21:30 -08:00
timothycarambat
e192364d8d Migrate CDN download URL from S3 bucket 2025-01-07 12:09:14 -08:00
Chaiwat Saithongcum
fa3079bbbf
Add support for Google Generative AI (Gemini) embedder (#2895)
* Add support for Google Generative AI (Gemini) embedder

* Add missing example in docker
Fix UI key elements in options
Add Gemini to data handling section
Patch issues with chunk handling during embedding

* remove dupe in env

---------

Co-authored-by: timothycarambat <rambat1010@gmail.com>
2024-12-31 09:29:38 -08:00
timothycarambat
e4f47c1abf linting 2024-11-21 15:49:59 -08:00
hdelossantos
304796ec59
feat: support setting maxConcurrentChunks for Generic OpenAI embedder (#2655)
* exposes `maxConcurrentChunks` parameter for the generic openai embedder through configuration. This allows setting a batch size for endpoints which don't support the default of 500

* Update new field to new UI
make getting to ensure proper type and format

---------

Co-authored-by: timothycarambat <rambat1010@gmail.com>
2024-11-21 11:29:44 -08:00
Sean Hatfield
9f38b9337b
Mistral embedding engine support (#2667)
* add mistral embedding engine support

* remove console log + fix data handling onboarding

* update data handling description

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2024-11-21 11:05:55 -08:00
Sean Hatfield
27b07d46b3
Patch bad models endpoint path in LM Studio embedding engine (#2628)
* patch bad models endpoint path in lm studio embedding engine

* convert to OpenAI wrapper compatibility

* add URL force parser/validation for LMStudio connections

* remove comment

---------

Co-authored-by: timothycarambat <rambat1010@gmail.com>
2024-11-13 12:34:42 -08:00
timothycarambat
ec3b3010f8 Patch VoyageAI implementation from LC
resolves #2593
2024-11-06 11:43:41 -08:00
Blazej Owczarczyk
e07535471f
Added voyage-3 and voyage-3-lite. (#2394) 2024-09-30 09:37:25 -07:00
Timothy Carambat
20135835d0
Ollama sequential embedding (#2230)
* ollama: Switch from parallel to sequential chunk embedding

* throw error on empty embeddings

---------

Co-authored-by: John Blomberg <john.jb.blomberg@gmail.com>
2024-09-06 10:06:46 -07:00
Sean Hatfield
86ba16acdc
Add new Voyage AI embedding models (#2193)
new voyageai embedding models
2024-08-29 14:11:00 -07:00
Sean Hatfield
e72fa8b370
[FEAT] Generic OpenAI embedding provider (#1664)
* implement generic openai embedding provider

* linting

* comment & description update for generic openai embedding provider

* fix privacy for generic

---------

Co-authored-by: timothycarambat <rambat1010@gmail.com>
2024-06-21 16:27:02 -07:00
Sean Hatfield
d29292ebd2
[FEAT] Add LiteLLM embedding provider support (#1579)
* add liteLLM embedding provider support

* update tooltip id

---------

Co-authored-by: timothycarambat <rambat1010@gmail.com>
2024-06-06 12:43:34 -07:00
timothycarambat
7bace20769 Improve VoyageAI error responses and textChunk handler
resolves #1491
2024-05-22 13:42:48 -05:00
Timothy Carambat
8c5a30db9d
Support dynamic context length - VoyageAI (#1489) 2024-05-22 10:53:49 -05:00
Sean Hatfield
5bf4b4db58
[FEAT] Add support for Voyage AI embedder (#1401)
* add support for voyageai embedder

* remove unneeded import

* linting

* Add ENV examples
Update how chunks are processed for Voyage
use correct langchain import
Add data handling

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2024-05-19 13:20:23 -05:00
Sean Hatfield
3caebc47b4
[FEAT] Cohere LLM and embedder support (#1233)
* getChatCompletion working WIP streaming

* WIP

* working streaming WIP abort stream

* implement cohere embedder support

* remove inputType option from cohere embedder

* fix cohere LLM from not aborting stream when canceled by user

* Patch Cohere implemention

* add cohere to onboarding

---------

Co-authored-by: timothycarambat <rambat1010@gmail.com>
2024-05-02 10:35:50 -07:00
Timothy Carambat
244ce2e307
Prevent concurrent downloads on first-doc upload (#1267) 2024-05-02 10:15:11 -07:00
Timothy Carambat
547d4859ef
Bump openai package to latest (#1234)
* Bump `openai` package to latest
Tested all except localai

* bump LocalAI support with latest image

* add deprecation notice

* linting
2024-04-30 12:33:42 -07:00
Timothy Carambat
bf435b2861
Adjust how text is split depending on input type (#1238)
resolves #1230
2024-04-30 10:11:56 -07:00
Timothy Carambat
c65f890afc
Add LMStudio embedding endpoint support (#1141)
* Add LMStudio embedding endpoint support

* update alive path check for HEAD
remove commented JSX

* update comment
2024-04-19 15:36:07 -07:00
Timothy Carambat
ce98ff4653
Enable customization of chunk length and overlap (#1059)
* Enable customization of chunk length and overlap

* fix onboarding link
show max limit in UI and prevent overlap >= chunk size
2024-04-06 16:38:07 -07:00
Timothy Carambat
1c11a47f93
Check ollama alive for embedder (#1057) 2024-04-06 12:16:30 -07:00
Timothy Carambat
6f52a2b729
Embedder download - fallback URL (#1056)
* Embedder download - fallback URL

* improve logging for native embedder
2024-04-06 11:49:15 -07:00