207 Commits

Author SHA1 Message Date
Timothy Carambat c5ab6531bb Merge branch 'master' into master 2026-07-03 11:29:52 -07:00
shatfield4 606d80ff67 update default fallback models for openai/anthropic 2026-07-02 15:52:45 -07:00
Guilherme Nogueira d34a69d0d2 feat: adds support for openai compatible whisper api 2026-07-01 21:22:29 -03:00
Timothy Carambat 70e0d2eb1d 1.15.0 tags (#5909) 2026-06-25 16:13:36 -07:00
Jim Smith dbb034f123 feat: add query/passage prefix env vars to GenericOpenAi embedder (#5589)
* feat: add query/passage prefix env vars to GenericOpenAi embedder

Adds two optional env vars to `EMBEDDING_ENGINE=generic-openai`:

- EMBEDDING_QUERY_PREFIX  — prepended only to inputs of `embedTextInput`
                            (the query path used by every vector DB provider's
                            similarity search).
- EMBEDDING_PASSAGE_PREFIX — prepended only to inputs of `embedChunks`
                            (the ingest path).

Both default to empty strings, so the wire payload is bitwise-identical to
prior behavior unless a user opts in.

Required by asymmetric embedding models (Qwen3-Embedding family, BGE, E5-instruct,
multilingual-e5-*, etc.). Per the Qwen3-Embedding model card, queries should be
wrapped as:

    Instruct: <task>\nQuery:<query>

…and passages sent raw. Skipping the wrap costs ~1-5% on the asymmetric MTEB
tasks the model was trained for. There was previously no way to apply this in
AnythingLLM.

Connects #5403 (the prefix half; chunking-strategy half left for a follow-up).

* remove test

* update docs for env
refactor how entire feature works
add UI fields for supporting this feature from UI for Generic
Logging for user debugging + tooltips and hints
Tested in rag-memory + chat search

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-06-24 17:34:07 -07:00
Marcello Fitton 518b9191ba Intelligent Tool Selection (ToolReranker) enabled by default (#5893)
* flip AGENT_SKILL_RERANKER_ENABLED to be set to true by default

* Remove beta badge from Intelligent Skill Selection

* remove comment

* remove beta badge key

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-06-24 16:53:37 -07:00
Timothy Carambat 5862a3ec58 1.14.2 (#5897) 2026-06-22 13:45:11 -07:00
Recep S 9b0b41e45b feat: add fastCRW web search provider (#5824)
* feat: add fastCRW web search provider

* small updates

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-06-18 08:09:03 -07:00
Timothy Carambat db3b23bc99 Groq STT (#5853)
* groq stt

* examples

* comment
2026-06-16 15:39:00 -07:00
Timothy Carambat e71eb829de Migrate AWS Sdk to OpenAI (#5848)
* Migrate AWS Sdk to OpenAI

* fix dev command
update bedrock to change with zone
2026-06-16 15:07:57 -07:00
Timothy Carambat 619868f125 1.14.1 Release (#5850)
tags
2026-06-16 14:09:30 -07:00
Timothy Carambat 0c03a838b4 Remove unused providers (#5793)
* remove HF endpoint support

* Delete DPAIS

* forgot file ref
2026-06-09 14:55:03 -07:00
Timothy Carambat 5706b42a28 1.14.0 release (#5788) 2026-06-09 06:45:56 -07:00
Timothy Carambat a4c9ee1baf Make native tool calling opt-out instead of opt-in (#5783)
feat(agents): make native tool calling opt-out instead of opt-in

Flip the agent provider tool calling model from opt-in to opt-out.
Native tool calling is now enabled by default for all providers that support it.
ENV flag renamed from PROVIDER_SUPPORTS_NATIVE_TOOL_CALLING to PROVIDER_DISABLE_NATIVE_TOOL_CALLING.

Base class (`ai-provider.js`):
- `supportsNativeToolCalling()` now returns `true` by default
- `supportsNativeToolCallingViaEnv()` replaced with `optsOutOfNativeToolCallingViaEnv()`
- All providers now set `this.providerTag` for ENV-based opt-out lookup

Mostly untouched (already had tool calling, just removed redundant override + added providerTag):
- openai, azure, deepseek, minimax, anthropic
- genericOpenAi (ENV capability check updated to opt-out)

Already had dynamic capability checking (added opt-out ENV guard):
- ollama, lmstudio, cerebras, novita, dockerModelRunner, gemini, lemonade

Removed old ENV opt-in check (now inherits opt-out default from base):
- groq, openrouter, litellm, localai, bedrock

Modified to support native tool calling (added tooled stream/complete paths):
- apipie, cometapi, fireworksai, giteeai, koboldcpp, mistral,
  moonshotAi, ppio, privatemode, sambanova, textgenwebui,
  togetherai, xai, zai

Stayed disabled (provider genuinely cannot support tools):
- cohere (no OAI-compatible tool API yet)
- perplexity (no tool calling API support)
- nvidiaNim (deprecated)
- foundry (needs explicit testing)
- dellProAiStudio (likely deprecated, untested)
2026-06-08 16:43:40 -07:00
Dmitry Maranik 0f42baadeb feat(embed): opt-in deny-by-default for embeds with no allowlist (#5759)
* feat(embed): opt-in deny-by-default for embeds with no allowlist

An embed created without `allowlist_domains` currently answers requests from ANY origin: EmbedConfig.parseAllowedHosts() returns null for an empty allowlist, and the embed middleware (canRespond) skips the origin check when it is null.

This adds an opt-in, back-compatible `EMBED_REQUIRE_ALLOWLIST` env flag that makes embeds with no allowlist deny all requests until an allowlist is set (default/unset preserves existing behavior), plus a creation-time console warning and an .env.example entry.

Signed-off-by: Dmitry Maranik <dmitrymaranik@gmail.com>

* chore(embed): persist EMBED_REQUIRE_ALLOWLIST in dumpENV protectedKeys

Per review on #5759: EMBED_REQUIRE_ALLOWLIST is not GUI-controlled, so add it to the dumpENV() protectedKeys array so the setting survives env writes.

Signed-off-by: Dmitry Maranik <dmitrymaranik@gmail.com>

* update to spec

---------

Signed-off-by: Dmitry Maranik <dmitrymaranik@gmail.com>
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-06-06 13:07:49 -07:00
Sanidhya Singh 43e0d9a43d feat: make document sync stale-after interval configurable (#5747)
The document sync/watch feature hardcoded the stale-after interval to 7
days (604800000ms), which is too infrequent for operational documents
that change often. This makes it configurable via the new
DOCUMENT_SYNC_STALE_AFTER_MS environment variable.

- defaultStaleAfter now reads DOCUMENT_SYNC_STALE_AFTER_MS, falling back
  to the 7-day default for unset/invalid/non-positive values and
  enforcing a 1-hour minimum to avoid overloading embedders.
- watch() now persists staleAfterMs on the queue record so the
  configured interval governs recurring syncs, not just the first one.
- Documented the variable in server/ and docker/ .env.example files.

Resolves #3988

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-06-03 09:07:49 -07:00
Sean Hatfield 15b7966366 Kokoro TTS provider (#5679)
* add kokoro tts provider

* fix api key fallback + add try/catch around voice fetch

* fix order

* update order and endpoint parsing

* remove log

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-06-01 16:30:21 -07:00
Sean Hatfield 9c6ab7cadb feat: add server-side speech-to-text with OpenAI provider (#5596)
* feat: add server-side speech-to-text with OpenAI provider

* extract shared mic button and silence detector for STT

* dynamically fetch openai stt models from api

* add STT entries to .env.example

* filter non-audio uploads in handleAudioUpload

* update translations for STT

* Deepgram provider for STT (#5612)

* add deepgram provider for speech-to-text

* add deepgram STT entries to .env.example

* add comment to clarify successful api key usage

* revert unintentional embed submodule change

* resize deepgram.png to 300x300

* filter lots of dupe models from picker

---------

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

* deepgram nit

* Lemonade provider for STT (#5610)

* add lemonade provider for speech-to-text

* add lemonade STT entries to .env.example

* convert lemonade STT audio to wav via collector

* clarify lemonade STT api key reuse in env examples

* extract STT wav conversion into reusable helper

* use async fs in collector convertAudioToWav

* return result object from convertAudioToWav on empty filename

* apply filtering

* DiD path name

---------

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

* Generic OpenAI provider for STT (#5609)

* add generic openai provider for speech-to-text

* add generic-openai STT entries to .env.example

* wav conversion

* remove log

---------

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

* i18n (#5740)

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-06-01 15:47:00 -07:00
Asish Kumar bee224171c feat: add Cerebras as an LLM provider (#5699)
* feat: add Cerebras as an LLM provider

Adds Cerebras (https://www.cerebras.ai) as a first-class LLM provider for
chat and agents. Cerebras exposes an OpenAI-compatible inference API, so the
integration mirrors the existing fast-inference providers (Groq/SambaNova):

- New `CerebrasLLM` provider with streaming, prompt-window limits sourced from
  the shared model map, and dynamic model discovery via the customModels
  helper (`GET /v1/models`).
- New `CerebrasProvider` agent provider with the standard UnTooled fallback and
  optional native OpenAI-compatible tool calling, gated behind the existing
  `PROVIDER_SUPPORTS_NATIVE_TOOL_CALLING` ENV (since tool-calling support
  varies per Cerebras model).
- Wires the provider through getLLMProvider/getLLMProviderClass, agent
  selection, ENV validation/persistence, system settings, and the agent
  sub-task client builder so agent helpers (e.g. web-scraping summarization)
  work for Cerebras.
- Registers `cerebras` in the context-window model map (tracked LiteLLM
  provider + legacy fallback values) for accurate context limits.
- Frontend: API key + model-selection options, onboarding/settings provider
  entries, agent-provider enablement, privacy-policy entry, and provider logo.
- Documents the new `CEREBRAS_API_KEY` / `CEREBRAS_MODEL_PREF` env vars in the
  example env files and adds Cerebras to the supported-provider lists.

resolves #5605

* use proper model fallback
use public endpoint for model fetching

* context window reporting + better chat repsonses + show thinking

* add Cerebrase agent tool calling, capability detection, context windows, and usage reporting

* add safety caching

* stub out images

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-05-27 11:38:30 -07:00
Timothy Carambat 9fe6bbfb09 v1.13.0 release (#5693) 2026-05-26 12:04:13 -07:00
Timothy Carambat 2f189f9703 bump docker run in HOW_TO_USE_DOCKER 2026-05-22 14:56:27 -07:00
Sean Hatfield d348b17449 Workspace deletion protection (#5662)
* add WORKSPACE_DELETION_PROTECTION env flag to disable workspace deletion from UI and APIs

* minor nits

* patch test for phrase

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-05-20 08:53:00 -07:00
Sean Hatfield bd7d30a96d feat: Memories/Personalization (#5269)
* add memory storage layer with model, endpoints, schema, and system setting

* add memory extraction background worker

* handle single-user and multi-user mode for memory extraction

* add memory injection and personalization ui

* lint

* personalization UI polish, fix RBAC for all roles, and endpoint guards

* split admin personalization page into subcomponents

* split admin personalization page into subcomponents, use early return instead of ternary for readability

* make error responses consistent in memory endpoints

* consolidate duplicate MemoryItem into shared component

* skip memory reranking when no query context is available

* extract promptWithMemories util to deduplicate memory injection

* add english translations

* refactor memory api routes to eliminate ambiguous path params

* make memory extraction interval and idle threshold configurable via env vars

* add hint to memory form input

* inline personalization content in admin settings page

* consolidate unprocessed chat queries into single fetch

* simplify personalization page with early returns and layout subcomponent

* add memories sidebar with chat settings menu redesign

* remove legacy personalization ui

* split MemoriesSidebar into subcomponent folders

* fix memory card menu spacing to match design

* fix memories visibility for non-admin users

* add english translations for memories sidebar ui

* add workspace access checks to all memory endpoints

* pass user prompt to agent getDefinition for memory reranking

* check idle threshold per user/workspace group instead of globally

* use factory pattern for i18n text sizes and replace Trans with plain t() keys

* add placeholder examples and format guidance for manual memory creation

* remove stale comment

* refactor chat menu

* refactor sidebar to use provider and simplified DOM rendering

* fix memories sidebar overflow from long workspace names, widen memories options menu

* fix edit memory modal cursor landing at start of input

* hide memory add/move actions when at limit

* revert scope of workspace settings route changed for first pass of memories ui

* jsdoc memory model methods, drop redundant error logs

* inline error response returns and move body validation after perms in memory endpoints

* run memory fetches concurrently in list endpoint and prompt injection

* jsdoc server memory model methods

* normalize memory_enabled to true/false and add SystemSettings helper

* extract memory ownership middleware, strip redundant .end() calls

* use validWorkspaceSlug middleware for memory endpoints, switch to slug-based urls

* add description to memories util

* simplify memory ownership middleware to single db query

* use aibitat tool call for memory extraction, add chat safety limits

* truncate per-chat prompt/response before memory extraction

* add input validation to memory model

* validate ids array input in markMemoryProcessed

* inline memory injection in chatPrompt and systemPrompt

* make memory migration additive and drop unused sourceThreadId

* normalize translation files

* reset translations, minor nit

* refactor consts, extract memories with outputs

* set intervla

* sync

* rearch how memory extract works by moving to Observer/Reflector pattern (Mastra aspect)

* remove timeout on load

* Feat/memory i18n (#5661)

translations for #5269

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-05-19 17:24:18 -07:00
Daniel Dutra b5f138fe55 feat: adding MiniMax LLM provider (#5450)
* add MiniMax LLM provider support

* add MiniMax LLM provider to the docs

* fix: add trailing newlines for lint compliance

* add env vars to system settings | make max tokens configurable via ui | pass max tokens into minimax llm provider

* change fallback max tokens value to null to use provider default | pass max tokens into handleFucntionCallStream and chat

* add minimax to getModelTag switch

* pass provider into tooledStream and tooledComplete

* remove max tokens param

* update image

---------

Co-authored-by: angelplusultra <macfittondev@gmail.com>
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-05-18 13:20:57 -07:00
Asish Kumar 720ea69929 feat: allow configurable collector port (#5607)
* feat: allow configuring collector port

* refactor

* persist collector save in prod

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-05-11 17:29:01 -07:00
Timothy Carambat bde72505ff Remove default models to show empty until real models are retreieved (#5524)
resolves #5505
Fix placeholder
resolves #5503
resolves #5522
2026-04-24 15:13:57 -07:00
jimmyzhuu 680d38a3ce [FEAT] Add native Baidu Search provider for Agent web browsing (#5388)
* feat: add native baidu search provider for agent web browsing

* chore: address baidu search review feedback

* refactor baiduSearch internal util to be locally scoped

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-04-22 17:53:20 -07:00
Timothy Carambat f144692903 1.12.1 release tags (#5483) 2026-04-22 15:15:59 -07:00
Timothy Carambat 246edc38ce Add automatic agent skill aproval via ENV Flag (#5405)
* add autoapproval env flag

* persist flag
2026-04-10 13:20:47 -07:00
Timothy Carambat f6f1c80042 1.12.0 release (#5331) 2026-04-02 13:52:00 -07:00
Timothy Carambat 96965b3f30 Intelligent Skill Selection (#5236)
* Beta Intelligent Tooling
todo: Agent Skill banner warning when tool # is high or % of content window?

* forgot files

* add UI controls and maxToolCallStack setting

* update docs link

* ISS i18n (#5237)

i18n
2026-03-19 10:06:37 -07:00
Timothy Carambat 93d191f162 Merge branch 'master' of github.com:Mintplex-Labs/anything-llm 2026-03-18 09:26:09 -07:00
Timothy Carambat 1ed3cb5ca0 bump version tag 1.11.2 2026-03-18 09:25:39 -07:00
Kesku 409ac543bd feat(agents): Add Perplexity Search API as web search provider (#5210)
* feat(agents): Add Perplexity Search API as web search provider

Adds Perplexity as a search provider for the agent web-browsing plugin,
using the Perplexity Search API (POST /search) which returns raw ranked
web results — distinct from the existing Perplexity LLM integration.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* chore: replace docs.perplexity.ai with console.perplexity.ai

* chore: replace docs.perplexity.ai with console.perplexity.ai

---------

Co-authored-by: kesku <kesku@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-03-17 14:16:20 -07:00
Ryan 179a823ab1 Fix: Azure OpenAI model key collision (#5092)
* fix: Migrate AzureOpenAI model key from OPEN_MODEL_PREF to prevent the naming collision. No effort necessary from current users.

* test: add backwards compat tests for AzureOpenAI model key migration

* patch missing env example file

* linting

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-03-05 17:12:08 -08:00
Timothy Carambat e145c391e9 v1.11.1 Release tags (#5107)
bump tag
2026-03-02 09:25:06 -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 ac0b1d401d Native Tool calling (#5071)
* checkpoint

* test MCP and flows

* add native tool call detection back to LMStudio

* add native tool call loops for Ollama

* Add ablity detection to DMR (regex parse)

* bedrock and generic openai with ENV flag

* deepseek native tool calling

* localAI native function

* groq support

* linting, add litellm and OR native tool calling via flag
2026-02-26 13:37:56 -08:00
Timothy Carambat 40853e4e43 1.11.0 release tag (#5014) 2026-02-18 08:47:47 -08:00
Timothy Carambat dba1be0600 add support for custom headers for LLM Generic OpenAI (#4999)
* add support for custom headers for LLM Generic OpenAI

* add env
2026-02-13 09:19:36 -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
Timothy Carambat 0032c4da22 SambaNova Integration (#4943)
* SambaNova Integration

* lint
2026-01-29 18:48:22 -08:00
Timothy Carambat b8dd7bc97e Support PrivateModeAI Integration (#4937)
* Support PrivateModeAI Integration

* tooltip for proxy
2026-01-29 12:01:11 -08:00
Timothy Carambat ac8248e08d bump versions to 1.10.0 2026-01-21 16:10:07 -08:00
Timothy Carambat ff7cb17e34 Improved DMR support (#4863)
* Improve DMR support
- Autodetect models installed
- Grab all models from hub.docker to show available
- UI to handle render,search, install, and management of models
- Support functionality for chat, stream, and agentic calls

* forgot files

* fix loader circle being too large
fix tooltip width command
adjust location of docker installer open for web platform

* adjust imports
2026-01-14 15:55:26 -08:00
Timothy Carambat 3800a68402 Docker base image upgrade to Ubuntu 24 (#4754)
* test base image bump

* patch frontend compilation due to Vite QEMU exception

* migrate all runners to arm64 to avoid QEMU slowdown

* add back layer cleanup

* remove layer cache fix
2025-12-10 13:50:24 -08:00
Timothy Carambat cd263337f8 fix: bump version tag 2025-12-09 13:18:51 -08:00
Timothy Carambat 92752a2a15 Improve MCP functionality (#4709)
* Improve MCP functionality

* apply ANSI strip path

* attempt ARM build

* improve dockerfile IO build time and migrate to ARM build

* fix comment

* add ability to disable MCP cooldown feature

* update devbuild name

* move chromium arm build patch to CDN
2025-12-05 11:01:20 -08:00
方程 90e474abcb Support Gitee AI(LLM Provider) (#3361)
* Support Gitee AI(LLM Provider)

* refactor(server): 重构 GiteeAI 模型窗口限制功能,暂时将窗口限制硬编码,计划使用外部 API 数据和缓存

* updates for Gitee AI

* use legacy lookup since gitee does not enable getting token context windows

* add more missing records

* reorder imports

---------

Co-authored-by: 方程 <fangcheng@oschina.cn>
Co-authored-by: timothycarambat <rambat1010@gmail.com>
2025-11-25 14:19:32 -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