Enhance Docker configuration by adding new environment variables for image generation and updating dependencies in Dockerfile and FastAPI. This includes support for image providers and quality settings, improving flexibility in deployment configurations.
This commit is contained in:
parent
4e96a652e9
commit
ad3b31a359
5 changed files with 1157 additions and 1246 deletions
|
|
@ -18,6 +18,11 @@ RUN --mount=type=cache,target=/root/.cache/uv \
|
|||
COPY servers/fastapi /app/servers/fastapi
|
||||
RUN --mount=type=cache,target=/root/.cache/uv \
|
||||
uv pip install --python /opt/venv/bin/python --no-deps .
|
||||
# mem0/spaCy BM25 lemmatization loads en_core_web_sm at runtime; spaCy tries pip to
|
||||
# download it otherwise. Runtime image has no pip in PATH (--without-pip venv).
|
||||
RUN --mount=type=cache,target=/root/.cache/uv \
|
||||
uv pip install --python /opt/venv/bin/python \
|
||||
"https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.8.0/en_core_web_sm-3.8.0-py3-none-any.whl"
|
||||
RUN --mount=type=cache,target=/root/.cache \
|
||||
/opt/venv/bin/python scripts/warm_fastembed_cache.py
|
||||
|
||||
|
|
|
|||
158
README.md
158
README.md
|
|
@ -196,105 +196,125 @@ Run Presenton directly in your browser — no installation, no setup required. S
|
|||
|
||||
### ⚙️ Deployment Configurations
|
||||
|
||||
These settings apply to both Docker and the Electron app's backend. You may want to directly provide your API KEYS as environment variables and keep them hidden. You can set these environment variables to achieve it.
|
||||
The lists below match the environment variables forwarded in this repository’s **`docker-compose.yml`** (`production`, `production-gpu`, `development`, and `development-gpu`). Put values in a `.env` file next to the compose file, or export them before `docker compose up`. The Electron app backend can read the same names when run outside Docker.
|
||||
|
||||
- CAN_CHANGE_KEYS=[true/false]: Set this to **false** if you want to keep API Keys hidden and make them unmodifiable.
|
||||
- LLM=[openai/google/anthropic/ollama/custom]: Select **LLM** of your choice.
|
||||
- OPENAI_API_KEY=[Your OpenAI API Key]: Provide this if **LLM** is set to **openai**
|
||||
- OPENAI_MODEL=[OpenAI Model ID]: Provide this if **LLM** is set to **openai** (default: "gpt-4.1")
|
||||
- GOOGLE_API_KEY=[Your Google API Key]: Provide this if **LLM** is set to **google**
|
||||
- GOOGLE_MODEL=[Google Model ID]: Provide this if **LLM** is set to **google** (default: "models/gemini-2.0-flash")
|
||||
- ANTHROPIC_API_KEY=[Your Anthropic API Key]: Provide this if **LLM** is set to **anthropic**
|
||||
- ANTHROPIC_MODEL=[Anthropic Model ID]: Provide this if **LLM** is set to **anthropic** (default: "claude-3-5-sonnet-20241022")
|
||||
- OLLAMA_URL=[Custom Ollama URL]: Provide this if you want to custom Ollama URL and **LLM** is set to **ollama**
|
||||
- OLLAMA_MODEL=[Ollama Model ID]: Provide this if **LLM** is set to **ollama**
|
||||
- CUSTOM_LLM_URL=[Custom OpenAI Compatible URL]: Provide this if **LLM** is set to **custom**
|
||||
- CUSTOM_LLM_API_KEY=[Custom OpenAI Compatible API KEY]: Provide this if **LLM** is set to **custom**
|
||||
- CUSTOM_MODEL=[Custom Model ID]: Provide this if **LLM** is set to **custom**
|
||||
- TOOL_CALLS=[Enable/Disable Tool Calls on Custom LLM]: If **true**, **LLM** will use Tool Call instead of Json Schema for Structured Output.
|
||||
- DISABLE_THINKING=[Enable/Disable Thinking on Custom LLM]: If **true**, Thinking will be disabled.
|
||||
- WEB_GROUNDING=[Enable/Disable Web Search for OpenAI, Google And Anthropic]: If **true**, LLM will be able to search web for better results.
|
||||
- MEM0_ENABLED=[true/false]: Enables mem0 OSS presentation memory. Default is **true**.
|
||||
- MEM0_DIR=[Path]: Directory for mem0 OSS local storage (Qdrant path + history DB). Default is **/app_data/mem0**.
|
||||
- MEM0_EMBEDDER_PROVIDER=[Provider]: Embedder provider for mem0 OSS. Default is **fastembed**.
|
||||
- MEM0_EMBEDDER_MODEL=[Model]: Mid-range local embedding model for memory search. Default is **BAAI/bge-small-en-v1.5**.
|
||||
- MEM0_EMBEDDING_DIMS=[Number]: Embedding dimensions used by mem0 embedder and qdrant collection. Default is **384**.
|
||||
- LITEPARSE_DPI=[Number]: LiteParse OCR render DPI (higher can increase memory use). Default is **120**.
|
||||
- LITEPARSE_NUM_WORKERS=[Number]: LiteParse OCR worker count. Default is **1** for stable Docker parsing.
|
||||
Other optional variables exist in code (for example advanced Mem0 paths, LiteParse runners, or `FAST_API_INTERNAL_URL` when Next.js and FastAPI are not same-origin); they are **not** wired in `docker-compose.yml`. Supported names are discoverable from `servers/fastapi/utils/get_env.py` and the Next.js server utilities under `servers/nextjs/`.
|
||||
|
||||
Mem0 in Docker uses OSS/self-hosted mode (not Mem0 Platform API). Memory is isolated per presentation ID. Prompt context, extracted document text, generated outline context, and subsequent edit interactions are stored and retrieved only for that same presentation (including when revisiting later).
|
||||
#### LLM and API keys
|
||||
|
||||
You can also set the following environment variables to customize the image generation provider and API keys:
|
||||
- **CAN_CHANGE_KEYS**=[true/false]: Set to **false** if you want to keep API keys hidden and make them unmodifiable.
|
||||
- **LLM**=[openai/google/anthropic/ollama/custom/codex]: Select the text **LLM**.
|
||||
- **OPENAI_API_KEY**: Required if **LLM** is **openai**.
|
||||
- **OPENAI_MODEL**: Required if **LLM** is **openai** (default: `gpt-4.1`).
|
||||
- **GOOGLE_API_KEY**: Required if **LLM** is **google**.
|
||||
- **GOOGLE_MODEL**: Required if **LLM** is **google** (default: `models/gemini-2.0-flash`).
|
||||
- **ANTHROPIC_API_KEY**: Required if **LLM** is **anthropic**.
|
||||
- **ANTHROPIC_MODEL**: Required if **LLM** is **anthropic** (default: `claude-3-5-sonnet-20241022`).
|
||||
- **CODEX_MODEL**: Required if **LLM** is **codex** (Codex OAuth flow; compose maps host port **1455** for the callback).
|
||||
- **CUSTOM_LLM_URL**: OpenAI-compatible base URL if **LLM** is **custom**.
|
||||
- **CUSTOM_LLM_API_KEY**: API key if **LLM** is **custom**.
|
||||
- **CUSTOM_MODEL**: Model id if **LLM** is **custom**.
|
||||
- **TOOL_CALLS**=[true/false]: If **true**, the custom LLM uses tool calls instead of JSON schema for structured output.
|
||||
- **DISABLE_THINKING**=[true/false]: If **true**, disables “thinking” on the custom LLM.
|
||||
- **WEB_GROUNDING**=[true/false]: If **true**, enables web search for OpenAI, Google, and Anthropic models.
|
||||
- **EXTENDED_REASONING**=[true/false]: Enables extended reasoning where supported by the configured stack.
|
||||
|
||||
- DISABLE_IMAGE_GENERATION: If **true**, Image Generation will be disabled for slides.
|
||||
- IMAGE_PROVIDER=[dall-e-3/gpt-image-1.5/gemini_flash/nanobanana_pro/pexels/pixabay/comfyui]: Select the image provider of your choice.
|
||||
- Required if **DISABLE_IMAGE_GENERATION** is not set to **true**.
|
||||
- OPENAI_API_KEY=[Your OpenAI API Key]: Required if using **dall-e-3** or **gpt-image-1.5** as the image provider.
|
||||
- DALL_E_3_QUALITY=[standard/hd]: Optional quality setting for **dall-e-3** (default: `standard`).
|
||||
- GPT_IMAGE_1_5_QUALITY=[low/medium/high]: Optional quality setting for **gpt-image-1.5** (default: `medium`).
|
||||
- GOOGLE_API_KEY=[Your Google API Key]: Required if using **gemini_flash** or **nanobanana_pro** as the image provider.
|
||||
- PEXELS_API_KEY=[Your Pexels API Key]: Required if using **pexels** as the image provider.
|
||||
- PIXABAY_API_KEY=[Your Pixabay API Key]: Required if using **pixabay** as the image provider.
|
||||
- COMFYUI_URL=[Your ComfyUI server URL] and COMFYUI_WORKFLOW=[Workflow JSON]: Required if using **comfyui** to route prompts to a self-hosted ComfyUI workflow.
|
||||
#### Ollama
|
||||
|
||||
You can disable anonymous telemetry using the following environment variable:
|
||||
Use when **LLM** is **ollama**:
|
||||
|
||||
- DISABLE_ANONYMOUS_TRACKING=[true/false]: Set this to **true** to disable anonymous telemetry.
|
||||
- **OLLAMA_URL**: Base URL of the Ollama HTTP API (e.g. `http://host.docker.internal:11434` from Docker).
|
||||
- **OLLAMA_MODEL**: Model name in Ollama (e.g. `llama3.2:3b`).
|
||||
- **START_OLLAMA**=[true/false]: Container entrypoint (`start.js`): optional install + `ollama serve`. Default **false** (`development` / `production` compose).
|
||||
|
||||
### Web login (Docker / self-hosted)
|
||||
#### Presentation memory (Mem0 OSS)
|
||||
|
||||
The web image can require a single admin username and password before the app and API are usable. Credentials are stored under your `app_data` volume (hashed in `userConfig.json`). Optional environment variables (also wired in `docker-compose.yml` for `production`, `production-gpu`, `development`, and `development-gpu`):
|
||||
Mem0 uses local Qdrant + SQLite (OSS); memory is scoped per presentation.
|
||||
|
||||
- **AUTH_USERNAME** / **AUTH_PASSWORD** — Preseed the admin login on first boot (password at least 6 characters). If credentials already exist, these are ignored unless **AUTH_OVERRIDE_FROM_ENV** is set.
|
||||
- **AUTH_OVERRIDE_FROM_ENV**=[true/false] — If **true**, overwrite stored credentials from **AUTH_USERNAME** / **AUTH_PASSWORD** on every container start and rotate the session signing secret (all existing sessions end). Remove after a one-off rotation.
|
||||
- **RESET_AUTH**=[true/false] — If **true**, clear stored login data on startup (recovery). Use for one boot only, then unset so credentials are not wiped again.
|
||||
| Variable | Purpose |
|
||||
|----------|---------|
|
||||
| **MEM0_ENABLED** | **true**/false (compose default **true**). |
|
||||
| **MEM0_DIR** | Root directory (compose default **`/app_data/mem0`**). |
|
||||
| **MEM0_EMBEDDER_PROVIDER** | Embedder backend (compose default **`fastembed`**). |
|
||||
| **MEM0_EMBEDDER_MODEL** | Model id (compose default **`BAAI/bge-small-en-v1.5`**). |
|
||||
| **MEM0_EMBEDDING_DIMS** | Vector size (compose default **384**). |
|
||||
|
||||
#### Document parsing (LiteParse)
|
||||
|
||||
| Variable | Purpose |
|
||||
|----------|---------|
|
||||
| **LITEPARSE_DPI** | OCR render DPI (compose default **120**). |
|
||||
| **LITEPARSE_NUM_WORKERS** | Worker count (compose default **1**). |
|
||||
|
||||
#### Database
|
||||
|
||||
- **DATABASE_URL**: SQLAlchemy URL; if unset, the app falls back to SQLite under app data.
|
||||
- **MIGRATE_DATABASE_ON_STARTUP**: Compose sets **`true`** for all services so migrations run on startup.
|
||||
|
||||
#### Image generation
|
||||
|
||||
These variables match `docker-compose.yml`. **`IMAGE_PROVIDER`** selects the backend (`pexels`, `pixabay`, `gemini_flash`, `nanobanana_pro`, `dall-e-3`, `gpt-image-1.5`, `comfyui`, `open_webui`). Use **OPENAI_API_KEY** for OpenAI image modes and **GOOGLE_API_KEY** for Gemini image modes (same keys as the LLM section).
|
||||
|
||||
- **DISABLE_IMAGE_GENERATION**=[true/false]: Disable slide image generation.
|
||||
- **IMAGE_PROVIDER**: Provider id (see enum above).
|
||||
- **PEXELS_API_KEY**: Pexels stock images.
|
||||
- **PIXABAY_API_KEY**: Pixabay stock images.
|
||||
- **DALL_E_3_QUALITY**=[standard/hd]: Optional for **dall-e-3** (default `standard`).
|
||||
- **GPT_IMAGE_1_5_QUALITY**=[low/medium/high]: Optional for **gpt-image-1.5** (default `medium`).
|
||||
- **COMFYUI_URL** / **COMFYUI_WORKFLOW**: Self-hosted ComfyUI workflow JSON.
|
||||
- **OPEN_WEBUI_IMAGE_URL** / **OPEN_WEBUI_IMAGE_API_KEY**: Open WebUI–compatible image endpoint.
|
||||
|
||||
#### Telemetry
|
||||
|
||||
- **DISABLE_ANONYMOUS_TRACKING**=[true/false]: Set to **true** to disable anonymous telemetry.
|
||||
|
||||
#### Authentication (web login)
|
||||
|
||||
Presenton uses a **single admin account** per instance. Credentials live in `app_data` (hashed; see `userConfig.json`). Pass these with `-e` or via `.env` for compose:
|
||||
|
||||
- **AUTH_USERNAME** / **AUTH_PASSWORD** — Preseed the admin login on first boot (password at least 6 characters). Ignored if a user already exists unless **AUTH_OVERRIDE_FROM_ENV** is set.
|
||||
- **AUTH_OVERRIDE_FROM_ENV**=[true/false] — If **true**, replace stored credentials from the env vars on every FastAPI startup and rotate the session signing secret (invalidates existing sessions). Remove after a one-off rotation.
|
||||
- **RESET_AUTH**=[true/false] — If **true**, clear stored credentials on startup. Use for a **single** boot to recover access, then unset.
|
||||
|
||||
**Examples**
|
||||
|
||||
Default (first visit opens the setup UI on `/`):
|
||||
|
||||
```bash
|
||||
docker compose up -d production
|
||||
# open http://localhost:5000
|
||||
docker run -it --name presenton -p 5000:80 -v "./app_data:/app_data" ghcr.io/presenton/presenton:latest
|
||||
```
|
||||
|
||||
Preseed credentials via `.env` then start:
|
||||
|
||||
```bash
|
||||
# .env
|
||||
AUTH_USERNAME=admin
|
||||
AUTH_PASSWORD=your-secure-password
|
||||
|
||||
docker compose up -d production
|
||||
docker run -it --name presenton -p 5000:80 -e AUTH_USERNAME=admin -e AUTH_PASSWORD=changeme123 -v "./app_data:/app_data" ghcr.io/presenton/presenton:latest
|
||||
```
|
||||
|
||||
Rotate password from the environment (then remove `AUTH_OVERRIDE_FROM_ENV` from `.env` and redeploy):
|
||||
|
||||
```bash
|
||||
AUTH_USERNAME=admin
|
||||
AUTH_PASSWORD=new-password
|
||||
AUTH_OVERRIDE_FROM_ENV=true
|
||||
docker compose up -d production
|
||||
docker run -it --name presenton -p 5000:80 -e AUTH_USERNAME=admin -e AUTH_PASSWORD=changeme123 -v "${PWD}\app_data:/app_data" ghcr.io/presenton/presenton:latest
|
||||
```
|
||||
|
||||
Locked out — reset and set up again:
|
||||
```bash
|
||||
docker stop presenton && docker rm presenton && docker run -it --name presenton -p 5000:80 -e AUTH_USERNAME=admin -e AUTH_PASSWORD=newcred456 -e AUTH_OVERRIDE_FROM_ENV=true -v "./app_data:/app_data" ghcr.io/presenton/presenton:latest
|
||||
```
|
||||
|
||||
```bash
|
||||
RESET_AUTH=true docker compose up -d production
|
||||
# after one successful start, remove RESET_AUTH from .env and run compose again
|
||||
docker stop presenton && docker rm presenton && docker run -it --name presenton -p 5000:80 -e RESET_AUTH=true -v "./app_data:/app_data" ghcr.io/presenton/presenton:latest
|
||||
```
|
||||
|
||||
```bash
|
||||
docker stop presenton && docker rm presenton && docker run -it --name presenton -p 5000:80 -e AUTH_USERNAME=admin -e AUTH_PASSWORD=changeme123 -v "./app_data:/app_data" ghcr.io/presenton/presenton:latest
|
||||
```
|
||||
|
||||
**Manual reset:** stop the container, edit `./app_data/userConfig.json`, delete `AUTH_USERNAME`, `AUTH_PASSWORD_HASH`, and `AUTH_SECRET_KEY`, save, and start again.
|
||||
|
||||
Sign out from the app: **Settings → Other → Sign out**.
|
||||
|
||||
> Note: You can freely choose both the LLM (text generation) and the image provider. Supported image providers: **dall-e-3**, **gpt-image-1.5** (OpenAI), **gemini_flash**, **nanobanana_pro** (Google), **pexels**, **pixabay**, and **comfyui** (self-hosted).
|
||||
> Note: LLM and image variables above are forwarded from **`docker-compose.yml`** when set in `.env`.
|
||||
|
||||
<br>
|
||||
<br>
|
||||
|
||||
**Docker Run Examples by Provider**
|
||||
|
||||
Same variables as compose; use `-e` instead of `.env` when running `docker run` directly.
|
||||
|
||||
- Using OpenAI
|
||||
<pre><code class="language-bash">docker run -it --name presenton -p 5000:80 -e LLM="openai" -e OPENAI_API_KEY="******" -e IMAGE_PROVIDER="dall-e-3" -e CAN_CHANGE_KEYS="false" -v "./app_data:/app_data" ghcr.io/presenton/presenton:latest</code></pre>
|
||||
|
||||
|
|
@ -510,16 +530,6 @@ Prepend your server’s root URL to <code>path</code> and
|
|||
|
||||
### 🚀 Roadmap
|
||||
|
||||
- [x] Support for custom HTML templates by developers
|
||||
- [x] Support for accessing custom templates over API
|
||||
- [x] Implement MCP server
|
||||
- [ ] Ability for users to change system prompt
|
||||
- [x] Support external SQL database
|
||||
|
||||
#
|
||||
|
||||
### 🚀 Roadmap
|
||||
|
||||
Track the public roadmap on GitHub Projects: [https://github.com/orgs/presenton/projects/2](https://github.com/orgs/presenton/projects/2)
|
||||
|
||||
#
|
||||
|
|
|
|||
|
|
@ -28,7 +28,12 @@ services:
|
|||
- CUSTOM_LLM_API_KEY=${CUSTOM_LLM_API_KEY}
|
||||
- CUSTOM_MODEL=${CUSTOM_MODEL}
|
||||
- CODEX_MODEL=${CODEX_MODEL}
|
||||
- DISABLE_IMAGE_GENERATION=${DISABLE_IMAGE_GENERATION}
|
||||
- IMAGE_PROVIDER=${IMAGE_PROVIDER}
|
||||
- PEXELS_API_KEY=${PEXELS_API_KEY}
|
||||
- PIXABAY_API_KEY=${PIXABAY_API_KEY}
|
||||
- DALL_E_3_QUALITY=${DALL_E_3_QUALITY}
|
||||
- GPT_IMAGE_1_5_QUALITY=${GPT_IMAGE_1_5_QUALITY}
|
||||
- EXTENDED_REASONING=${EXTENDED_REASONING}
|
||||
- TOOL_CALLS=${TOOL_CALLS}
|
||||
- DISABLE_THINKING=${DISABLE_THINKING}
|
||||
|
|
@ -46,8 +51,6 @@ services:
|
|||
- LITEPARSE_NUM_WORKERS=${LITEPARSE_NUM_WORKERS:-1}
|
||||
- OPEN_WEBUI_IMAGE_URL=${OPEN_WEBUI_IMAGE_URL}
|
||||
- OPEN_WEBUI_IMAGE_API_KEY=${OPEN_WEBUI_IMAGE_API_KEY}
|
||||
# Single-user login (see AUTHENTICATION.md).
|
||||
# Leave all three unset to let the UI collect credentials on first visit.
|
||||
- AUTH_USERNAME=${AUTH_USERNAME:-}
|
||||
- AUTH_PASSWORD=${AUTH_PASSWORD:-}
|
||||
- AUTH_OVERRIDE_FROM_ENV=${AUTH_OVERRIDE_FROM_ENV:-}
|
||||
|
|
@ -89,7 +92,12 @@ services:
|
|||
- CUSTOM_LLM_API_KEY=${CUSTOM_LLM_API_KEY}
|
||||
- CUSTOM_MODEL=${CUSTOM_MODEL}
|
||||
- CODEX_MODEL=${CODEX_MODEL}
|
||||
- DISABLE_IMAGE_GENERATION=${DISABLE_IMAGE_GENERATION}
|
||||
- IMAGE_PROVIDER=${IMAGE_PROVIDER}
|
||||
- PEXELS_API_KEY=${PEXELS_API_KEY}
|
||||
- PIXABAY_API_KEY=${PIXABAY_API_KEY}
|
||||
- DALL_E_3_QUALITY=${DALL_E_3_QUALITY}
|
||||
- GPT_IMAGE_1_5_QUALITY=${GPT_IMAGE_1_5_QUALITY}
|
||||
- EXTENDED_REASONING=${EXTENDED_REASONING}
|
||||
- TOOL_CALLS=${TOOL_CALLS}
|
||||
- DISABLE_THINKING=${DISABLE_THINKING}
|
||||
|
|
@ -105,7 +113,6 @@ services:
|
|||
- MEM0_EMBEDDING_DIMS=${MEM0_EMBEDDING_DIMS:-384}
|
||||
- LITEPARSE_DPI=${LITEPARSE_DPI:-120}
|
||||
- LITEPARSE_NUM_WORKERS=${LITEPARSE_NUM_WORKERS:-1}
|
||||
|
||||
- OPEN_WEBUI_IMAGE_URL=${OPEN_WEBUI_IMAGE_URL}
|
||||
- OPEN_WEBUI_IMAGE_API_KEY=${OPEN_WEBUI_IMAGE_API_KEY}
|
||||
- AUTH_USERNAME=${AUTH_USERNAME:-}
|
||||
|
|
@ -144,7 +151,12 @@ services:
|
|||
- CUSTOM_LLM_API_KEY=${CUSTOM_LLM_API_KEY}
|
||||
- CUSTOM_MODEL=${CUSTOM_MODEL}
|
||||
- CODEX_MODEL=${CODEX_MODEL}
|
||||
- DISABLE_IMAGE_GENERATION=${DISABLE_IMAGE_GENERATION}
|
||||
- IMAGE_PROVIDER=${IMAGE_PROVIDER}
|
||||
- PEXELS_API_KEY=${PEXELS_API_KEY}
|
||||
- PIXABAY_API_KEY=${PIXABAY_API_KEY}
|
||||
- DALL_E_3_QUALITY=${DALL_E_3_QUALITY}
|
||||
- GPT_IMAGE_1_5_QUALITY=${GPT_IMAGE_1_5_QUALITY}
|
||||
- EXTENDED_REASONING=${EXTENDED_REASONING}
|
||||
- TOOL_CALLS=${TOOL_CALLS}
|
||||
- DISABLE_THINKING=${DISABLE_THINKING}
|
||||
|
|
@ -204,7 +216,12 @@ services:
|
|||
- CUSTOM_LLM_API_KEY=${CUSTOM_LLM_API_KEY}
|
||||
- CUSTOM_MODEL=${CUSTOM_MODEL}
|
||||
- CODEX_MODEL=${CODEX_MODEL}
|
||||
- DISABLE_IMAGE_GENERATION=${DISABLE_IMAGE_GENERATION}
|
||||
- IMAGE_PROVIDER=${IMAGE_PROVIDER}
|
||||
- PEXELS_API_KEY=${PEXELS_API_KEY}
|
||||
- PIXABAY_API_KEY=${PIXABAY_API_KEY}
|
||||
- DALL_E_3_QUALITY=${DALL_E_3_QUALITY}
|
||||
- GPT_IMAGE_1_5_QUALITY=${GPT_IMAGE_1_5_QUALITY}
|
||||
- EXTENDED_REASONING=${EXTENDED_REASONING}
|
||||
- TOOL_CALLS=${TOOL_CALLS}
|
||||
- DISABLE_THINKING=${DISABLE_THINKING}
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ dependencies = [
|
|||
"fastembed-vectorstore>=0.5.2",
|
||||
"fastmcp>=2.11.0",
|
||||
"google-genai>=1.28.0",
|
||||
"mem0ai>=0.1.115",
|
||||
"mem0ai[nlp]>=0.1.115",
|
||||
"nltk>=3.9.1",
|
||||
"openai>=1.98.0",
|
||||
"pathvalidate>=3.3.1",
|
||||
|
|
|
|||
2215
servers/fastapi/uv.lock
generated
2215
servers/fastapi/uv.lock
generated
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue