# yaml-language-server: $schema=https://schema.zeabur.app/template.json
apiVersion: zeabur.com/v1
kind: Template
metadata:
    name: AnythingLLM
spec:
    description: A full-stack application that enables you to turn any document, resource, or piece of content into context that any LLM can use as references during chatting.
    coverImage: https://pbs.twimg.com/profile_banners/1689841075555573761/1691725086/1500x500
    icon: https://raw.githubusercontent.com/Mintplex-Labs/anything-llm/refs/heads/master/frontend/src/media/logo/anything-llm-icon.png
    variables:
        - key: PUBLIC_DOMAIN
          type: DOMAIN
          name: AnythingLLM Domain
          description: The domain name for your AnythingLLM instance.
    tags:
        - AI
        - LLM
        - RAG
        - Document Processing
        - Chatbot
    readme: |-
        # AnythingLLM

        ## Introduction

        AnythingLLM is a full-stack application that enables you to turn any document, resource, or piece of content into context that any LLM can use as references during chatting.

        ## Features

        - **Multiple LLM Support**: Compatible with OpenAI, Anthropic, Ollama, and other LLM providers
        - **Document Processing**: Upload and process various file formats (PDF, Word, PowerPoint, etc.)
        - **Vector Storage**: Vectorize document content and store in vector databases
        - **Intelligent Q&A**: Ask questions based on your document content
        - **Multi-user Support**: User management and permission controls
        - **Voice Features**: Speech-to-text and text-to-speech capabilities
        - **Highly Customizable**: Configurable AI assistant

        ## Usage

        1. Deploy this template, and you'll be prompted to bind your domain
        2. After starting the service, you can access AnythingLLM at `https://<your-domain>`
        3. On first visit, you'll be guided through the initial setup
        4. Upload your documents and start chatting with your AI assistant

        ## Configuration

        After deployment, you can customize AnythingLLM by modifying environment variables in your Zeabur service settings. Here are the key configuration options:

        ### LLM Provider Configuration

        Configure your preferred LLM provider by setting these environment variables:

        - **LLM_PROVIDER**: Set to `ollama`, `openai`, `anthropic`, etc.
        - **OLLAMA_BASE_PATH**: Ollama API base URL (default: `http://127.0.0.1:11434`)
        - **OLLAMA_MODEL_PREF**: Preferred Ollama model (default: `llama2`)
        - **OLLAMA_MODEL_TOKEN_LIMIT**: Token limit for Ollama model (default: `4096`)

        For OpenAI or Anthropic, you'll need to set additional API key variables in the web interface.

        ### Embedding Configuration

        - **EMBEDDING_ENGINE**: Embedding provider (default: `ollama`)
        - **EMBEDDING_BASE_PATH**: Embedding API base URL (default: `http://127.0.0.1:11434`)
        - **EMBEDDING_MODEL_PREF**: Preferred embedding model (default: `nomic-embed-text:latest`)
        - **EMBEDDING_MODEL_MAX_CHUNK_LENGTH**: Max chunk length (default: `8192`)

        ### Vector Database

        - **VECTOR_DB**: Vector database type (default: `lancedb`)

        Uses LanceDB by default, which is an efficient vector database suitable for most use cases.

        ### Voice Features

        - **WHISPER_PROVIDER**: Speech-to-text provider (default: `local`)
        - **TTS_PROVIDER**: Text-to-speech provider (default: `native`)

        ### Security Settings

        - **JWT_SECRET**: JWT secret key (automatically generated)
        - **PASSWORDMINCHAR**: Minimum password length (default: `8`)

        ### How to Modify Environment Variables

        1. Go to your Zeabur service dashboard
        2. Navigate to the "Variables" tab
        3. Add or modify the environment variables listed above
        4. Restart your service for changes to take effect

        For detailed configuration options, visit the [AnythingLLM documentation](https://docs.anythingllm.com).

        ## Important Notes

        - Initial startup may take some time to initialize
        - Recommended to set strong passwords for production environments
        - Regular backup of your documents and configurations is advised

        ## Official Resources

        - Official Website: [https://anythingllm.com](https://anythingllm.com)
        - Documentation: [https://docs.anythingllm.com](https://docs.anythingllm.com)
        - GitHub: [https://github.com/Mintplex-Labs/anything-llm](https://github.com/Mintplex-Labs/anything-llm)
    services:
        - name: anythingllm
          icon: https://raw.githubusercontent.com/Mintplex-Labs/anything-llm/refs/heads/master/frontend/src/media/logo/anything-llm-icon.png
          template: PREBUILT
          spec:
            source:
                image: mintplexlabs/anythingllm:latest
            ports:
                - id: web
                  port: 3001
                  type: HTTP
            volumes:
                - id: storage
                  dir: /app/server/storage
            instructions:
                - title: AnythingLLM URL
                  content: https://${ZEABUR_WEB_DOMAIN}
            env:
                EMBEDDING_BASE_PATH:
                    default: http://127.0.0.1:11434
                EMBEDDING_ENGINE:
                    default: ollama
                EMBEDDING_MODEL_MAX_CHUNK_LENGTH:
                    default: "8192"
                EMBEDDING_MODEL_PREF:
                    default: nomic-embed-text:latest
                JWT_SECRET:
                    default: ${PASSWORD}
                LLM_PROVIDER:
                    default: ollama
                OLLAMA_BASE_PATH:
                    default: http://127.0.0.1:11434
                OLLAMA_MODEL_PREF:
                    default: llama2
                OLLAMA_MODEL_TOKEN_LIMIT:
                    default: "4096"
                PASSWORDMINCHAR:
                    default: "8"
                STORAGE_DIR:
                    default: /app/server/storage
                TTS_PROVIDER:
                    default: native
                VECTOR_DB:
                    default: lancedb
                WHISPER_PROVIDER:
                    default: local
          domainKey: PUBLIC_DOMAIN
localization:
    zh-CN:
        description: 一个全栈应用程序，让您能够将任何文档、资源或内容转换为任何 LLM 在聊天过程中可以作为参考的上下文。
        readme: |-
            # AnythingLLM

            ## 简介

            AnythingLLM 是一个全栈应用程序，能让您将任何文档、资源或内容转换为任何 LLM 在聊天过程中可以使用的上下文参考。

            ## 功能特色

            - **多种 LLM 支持**：支持 OpenAI、Anthropic、Ollama 等多种 LLM 提供商
            - **文档处理**：上传并处理各种格式的文档（PDF、Word、PowerPoint 等）
            - **向量化存储**：将文档内容向量化并存储在向量数据库中
            - **智能问答**：基于您的文档内容进行智能问答
            - **多用户支持**：支持用户管理和权限控制
            - **语音功能**：支持语音转文字和文字转语音
            - **高度可定制**：可配置的 AI 助手

            ## 使用方法

            1. 部署此模板，系统会提示您绑定域名
            2. 启动服务后，您可以在 `https://<您的域名>` 访问 AnythingLLM
            3. 首次访问时，系统会引导您完成初始设置
            4. 上传您的文档并开始与 AI 助手对话

            ## 配置说明

            部署后，您可以通过在 Zeabur 服务设置中修改环境变量来自定义 AnythingLLM。以下是关键配置选项：

            ### LLM 提供商配置

            通过设置以下环境变量来配置您首选的 LLM 提供商：

            - **LLM_PROVIDER**：设置为 `ollama`、`openai`、`anthropic` 等
            - **OLLAMA_BASE_PATH**：Ollama API 基础 URL（默认：`http://127.0.0.1:11434`）
            - **OLLAMA_MODEL_PREF**：首选 Ollama 模型（默认：`llama2`）
            - **OLLAMA_MODEL_TOKEN_LIMIT**：Ollama 模型令牌限制（默认：`4096`）

            对于 OpenAI 或 Anthropic，您需要在 Web 界面中设置额外的 API 密钥变量。

            ### 嵌入配置

            - **EMBEDDING_ENGINE**：嵌入提供商（默认：`ollama`）
            - **EMBEDDING_BASE_PATH**：嵌入 API 基础 URL（默认：`http://127.0.0.1:11434`）
            - **EMBEDDING_MODEL_PREF**：首选嵌入模型（默认：`nomic-embed-text:latest`）
            - **EMBEDDING_MODEL_MAX_CHUNK_LENGTH**：最大块长度（默认：`8192`）

            ### 向量数据库

            - **VECTOR_DB**：向量数据库类型（默认：`lancedb`）

            默认使用 LanceDB，这是一个高效的向量数据库，适合大多数使用场景。

            ### 语音功能

            - **WHISPER_PROVIDER**：语音转文字提供商（默认：`local`）
            - **TTS_PROVIDER**：文字转语音提供商（默认：`native`）

            ### 安全设置

            - **JWT_SECRET**：JWT 密钥（自动生成）
            - **PASSWORDMINCHAR**：最小密码长度（默认：`8`）

            ### 如何修改环境变量

            1. 转到您的 Zeabur 服务仪表板
            2. 导航到"变量"选项卡
            3. 添加或修改上述环境变量
            4. 重启您的服务以使更改生效

            有关详细配置选项，请访问 [AnythingLLM 文档](https://docs.anythingllm.com)。

            ## 注意事项

            - 首次启动可能需要较长时间来初始化
            - 建议为生产环境设置强密码
            - 定期备份您的文档和配置

            ## 官方资源

            - 官方网站：https://anythingllm.com
            - 文档：https://docs.anythingllm.com
            - GitHub：https://github.com/Mintplex-Labs/anything-llm
    zh-TW:
        description: 一個全棧應用程式，讓您能夠將任何文件、資源或內容轉換為任何 LLM 在聊天過程中可以作為參考的上下文。
        readme: |-
            # AnythingLLM

            ## 介紹

            AnythingLLM 是一個全棧應用程式，能讓您將任何文件、資源或內容轉換為任何 LLM 在聊天過程中可以使用的上下文參考。

            ## 功能特色

            - **多種 LLM 支援**：支援 OpenAI、Anthropic、Ollama 等多種 LLM 提供商
            - **文件處理**：上傳並處理各種格式的文件（PDF、Word、PowerPoint 等）
            - **向量化存儲**：將文件內容向量化並存儲在向量資料庫中
            - **智能問答**：基於您的文件內容進行智能問答
            - **多用戶支援**：支援用戶管理和權限控制
            - **語音功能**：支援語音轉文字和文字轉語音
            - **高度可自定義**：可配置的 AI 助手

            ## 使用方法

            1. 部署此模板，系統會提示您綁定域名
            2. 啟動服務後，您可以在 `https://<您的域名>` 訪問 AnythingLLM
            3. 首次訪問時，系統會引導您完成初始設置
            4. 上傳您的文件並開始與 AI 助手對話

            ## 配置說明

            部署後，您可以透過在 Zeabur 服務設定中修改環境變數來自訂 AnythingLLM。以下是關鍵配置選項：

            ### LLM 提供商配置

            透過設定以下環境變數來配置您偏好的 LLM 提供商：

            - **LLM_PROVIDER**：設定為 `ollama`、`openai`、`anthropic` 等
            - **OLLAMA_BASE_PATH**：Ollama API 基礎 URL（預設：`http://127.0.0.1:11434`）
            - **OLLAMA_MODEL_PREF**：偏好的 Ollama 模型（預設：`llama2`）
            - **OLLAMA_MODEL_TOKEN_LIMIT**：Ollama 模型權杖限制（預設：`4096`）

            對於 OpenAI 或 Anthropic，您需要在網頁介面中設定額外的 API 金鑰變數。

            ### 嵌入配置

            - **EMBEDDING_ENGINE**：嵌入提供商（預設：`ollama`）
            - **EMBEDDING_BASE_PATH**：嵌入 API 基礎 URL（預設：`http://127.0.0.1:11434`）
            - **EMBEDDING_MODEL_PREF**：偏好的嵌入模型（預設：`nomic-embed-text:latest`）
            - **EMBEDDING_MODEL_MAX_CHUNK_LENGTH**：最大區塊長度（預設：`8192`）

            ### 向量資料庫

            - **VECTOR_DB**：向量資料庫類型（預設：`lancedb`）

            預設使用 LanceDB，這是一個高效的向量資料庫，適合大多數使用場景。

            ### 語音功能

            - **WHISPER_PROVIDER**：語音轉文字提供商（預設：`local`）
            - **TTS_PROVIDER**：文字轉語音提供商（預設：`native`）

            ### 安全設定

            - **JWT_SECRET**：JWT 密鑰（自動產生）
            - **PASSWORDMINCHAR**：最小密碼長度（預設：`8`）

            ### 如何修改環境變數

            1. 前往您的 Zeabur 服務儀表板
            2. 導航至「變數」分頁
            3. 新增或修改上述環境變數
            4. 重新啟動您的服務以使變更生效

            詳細配置選項請參閱 [AnythingLLM 文件](https://docs.anythingllm.com)。

            ## 注意事項

            - 首次啟動可能需要較長時間來初始化
            - 建議為生產環境設置強密碼
            - 定期備份您的文件和配置

            ## 官方資源

            - 官方網站：https://anythingllm.com
            - 文檔：https://docs.anythingllm.com
            - GitHub：https://github.com/Mintplex-Labs/anything-llm
