name: weknora
services:
  weknora:
    image: wechatopenai/weknora-ui:v0.2.14
    container_name: weknora
    ports:
      - target: 80
        published: "1080"
        protocol: tcp
    environment:
      - MAX_FILE_SIZE_MB=50
    depends_on:
      app:
        condition: service_healthy
    networks:
      - weknora-network
    restart: unless-stopped
    deploy:
      resources:
        reservations:
          memory: 128M
    x-casaos:
      envs:
        - container: MAX_FILE_SIZE_MB
          description:
            de_DE: Maximale Dateigröße für Uploads in MB
            el_GR: Μέγιστο επιτρεπόμενο μέγεθος αρχείου για μεταφόρτωση σε megabytes
            en_GB: Maximum file size allowed for upload in megabytes
            en_US: Maximum file size allowed for upload in megabytes
            fr_FR: Taille maximale du fichier autorisée pour le téléchargement en mégaoctets
            hr_HR: Maksimalna veličina datoteke dopuštena za prijenos u megabajtima
            it_IT: Dimensione massima del file consentita per il caricamento in megabyte
            ja_JP: アップロード可能な最大ファイルサイズ（MB）
            ko_KR: 업로드 허용 최대 파일 크기(MB)
            nb_NO: Maksimal filstørrelse for opplasting i megabytes
            pt_PT: Tamanho máximo de ficheiro permitido para carregamento em megabytes
            ru_RU: Максимальный размер файла для загрузки в мегабайтах
            sv_SE: Maximal filstorlek för uppladdning i megabyte
            tr_TR: Yükleme için izin verilen maksimum dosya boyutu (megabayt cinsinden)
            zh_CN: 最大允许上传文件大小（MB）
      ports:
        - container: "80"
          description:
            de_DE: Haupt-Weboberflächen-Port
            el_GR: Κύρια θύρα διαδικτυακής διεπαφής
            en_GB: Main web interface port
            en_US: Main web interface port
            fr_FR: Port de l'interface Web principale
            hr_HR: Glavna vrata web sučelja
            it_IT: Porta dell'interfaccia Web principale
            ja_JP: メインWebインターフェースポート
            ko_KR: 메인 웹 인터페이스 포트
            nb_NO: Hovedport for webgrensesnitt
            pt_PT: Porta da interface Web principal
            ru_RU: Основной порт веб-интерфейса
            sv_SE: Huvudport för webbgränssnitt
            tr_TR: Ana web arayüzü bağlantı noktası
            zh_CN: 主 Web 界面端口
  app:
    image: wechatopenai/weknora-app:v0.2.14
    container_name: weknora-app
    volumes:
      - type: bind
        source: /DATA/AppData/$AppID/files
        target: /data/files
    deploy:
      resources:
        reservations:
          memory: 512M
    healthcheck:
      test:
        - CMD
        - curl
        - -f
        - http://localhost:8080/health
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 60s
    environment:
      - OTEL_EXPORTER_OTLP_ENDPOINT=jaeger:4317
      - OTEL_SERVICE_NAME=WeKnora
      - OTEL_TRACES_EXPORTER=otlp
      - OTEL_METRICS_EXPORTER=none
      - OTEL_LOGS_EXPORTER=none
      - OTEL_PROPAGATORS=tracecontext,baggage
      - QDRANT_HOST=qdrant
      - QDRANT_PORT=6334
      - QDRANT_COLLECTION=weknora_embeddings
      - QDRANT_API_KEY=
      - QDRANT_USE_TLS=false
      - MINIO_ENDPOINT=minio:9000
      - MINIO_ACCESS_KEY_ID=minioadmin
      - MINIO_SECRET_ACCESS_KEY=minioadmin
      - MINIO_BUCKET_NAME=weknora
      - GIN_MODE=release
      - DISABLE_REGISTRATION=false
      - DB_DRIVER=postgres
      - DB_HOST=weknora-postgres
      - DB_PORT=5432
      - DB_USER=postgres
      - DB_PASSWORD=postgres123!@#
      - DB_NAME=WeKnora
      - TZ=$TZ
      - RETRIEVE_DRIVER=postgres
      - DOCREADER_ADDR=weknora-docreader:50051
      - STORAGE_TYPE=minio
      - LOCAL_STORAGE_BASE_DIR=/data/files
      - AUTO_RECOVER_DIRTY=true
      - OLLAMA_BASE_URL=http://host.docker.internal:11434
      - STREAM_MANAGER_TYPE=redis
      - REDIS_ADDR=weknora-redis:6379
      - REDIS_PASSWORD=redis123!@#
      - REDIS_DB=0
      - REDIS_PREFIX="stream:"
      - TENANT_AES_KEY=weknorarag-api-key-secret-secret
      - CONCURRENCY_POOL_SIZE=5
      - JWT_SECRET=weknora-jwt-secret
      - MAX_FILE_SIZE_MB=50
    depends_on:
      weknora-redis:
        condition: service_started
      weknora-postgres:
        condition: service_healthy
      weknora-docreader:
        condition: service_healthy
    networks:
      - weknora-network
    restart: unless-stopped
    extra_hosts:
      - host.docker.internal:host-gateway
    x-casaos:
      envs:
        - container: GIN_MODE
          description:
            de_DE: Gin-Framework-Modus (debug/release)
            el_GR: Λειτουργία Gin Framework (debug/release)
            en_GB: Gin framework mode (debug/release)
            en_US: Gin framework mode (debug/release)
            fr_FR: Mode du framework Gin (debug/release)
            hr_HR: Gin framework način (debug/release)
            it_IT: Modalità framework Gin (debug/release)
            ja_JP: Gin フレームワーク モード (debug/release)
            ko_KR: Gin 프레임워크 모드 (debug/release)
            nb_NO: Gin-rammemodus (debug/release)
            pt_PT: Modo do framework Gin (debug/release)
            ru_RU: Режим фреймворка Gin (debug/release)
            sv_SE: Gin-ramverkets läge (debug/release)
            tr_TR: Gin framework modu (debug/release)
            zh_CN: Gin 框架模式
        - container: DISABLE_REGISTRATION
          description:
            de_DE: Benutzerregistrierung deaktivieren
            el_GR: Απενεργοποίηση εγγραφής χρηστών
            en_GB: Disable user registration
            en_US: Disable user registration
            fr_FR: Désactiver l'inscription des utilisateurs
            hr_HR: Onemogući registraciju korisnika
            it_IT: Disabilita la registrazione degli utenti
            ja_JP: ユーザー登録を無効にする
            ko_KR: 사용자 등록 비활성화
            nb_NO: Deaktiver brukerregistrering
            pt_PT: Desativar o registo de utilizadores
            ru_RU: Отключить регистрацию пользователей
            sv_SE: Inaktivera användarregistrering
            tr_TR: Kullanıcı kaydını devre dışı bırak
            zh_CN: 禁用用户注册
        - container: DB_DRIVER
          description:
            de_DE: Datenbanktreiber-Typ
            el_GR: Τύπος οδηγού βάσης δεδομένων
            en_GB: Database driver type
            en_US: Database driver type
            fr_FR: Type de pilote de base de données
            hr_HR: Vrsta upravljačkog programa baze podataka
            it_IT: Tipo di driver del database
            ja_JP: データベースドライバの種類
            ko_KR: 데이터베이스 드라이버 유형
            nb_NO: Databasedrivertype
            pt_PT: Tipo de controlador da base de dados
            ru_RU: Тип драйвера базы данных
            sv_SE: Typ av databasdrivrutin
            tr_TR: Veritabanı sürücüsü türü
            zh_CN: 数据库驱动类型
        - container: DB_HOST
          description:
            de_DE: Hostname des Datenbankservers
            el_GR: Όνομα κεντρικού υπολογιστή διακομιστή βάσης δεδομένων
            en_GB: Database server hostname
            en_US: Database server hostname
            fr_FR: Nom d'hôte du serveur de base de données
            hr_HR: Naziv poslužitelja baze podataka
            it_IT: Hostname del server del database
            ja_JP: データベースサーバーのホスト名
            ko_KR: 데이터베이스 서버 호스트 이름
            nb_NO: Databaseserverens vertsnavn
            pt_PT: Nome do anfitrião do servidor de base de dados
            ru_RU: Имя хоста сервера базы данных
            sv_SE: Databaseserverns värdnamn
            tr_TR: Veritabanı sunucusu ana bilgisayar adı
            zh_CN: 数据库服务器主机名
        - container: DB_PORT
          description:
            de_DE: Port des Datenbankservers
            el_GR: Θύρα διακομιστή βάσης δεδομένων
            en_GB: Database server port
            en_US: Database server port
            fr_FR: Port du serveur de base de données
            hr_HR: Port poslužitelja baze podataka
            it_IT: Porta del server del database
            ja_JP: データベースサーバーのポート
            ko_KR: 데이터베이스 서버 포트
            nb_NO: Port for databaseserver
            pt_PT: Porta do servidor de base de dados
            ru_RU: Порт сервера базы данных
            sv_SE: Port för databaseserver
            tr_TR: Veritabanı sunucusu bağlantı noktası
            zh_CN: 数据库服务器端口
        - container: DB_USER
          description:
            de_DE: Datenbank-Benutzername
            el_GR: Όνομα χρήστη βάσης δεδομένων
            en_GB: Database username
            en_US: Database username
            fr_FR: Nom d'utilisateur de la base de données
            hr_HR: Korisničko ime baze podataka
            it_IT: Nome utente del database
            ja_JP: データベースのユーザー名
            ko_KR: 데이터베이스 사용자 이름
            nb_NO: Databasen brukernavn
            pt_PT: Nome de utilizador da base de dados
            ru_RU: Имя пользователя базы данных
            sv_SE: Databasanvändarnamn
            tr_TR: Veritabanı kullanıcı adı
            zh_CN: 数据库用户名
        - container: DB_PASSWORD
          description:
            de_DE: Datenbankpasswort
            el_GR: Κωδικός πρόσβασης βάσης δεδομένων
            en_GB: Database password
            en_US: Database password
            fr_FR: Mot de passe de la base de données
            hr_HR: Lozinka baze podataka
            it_IT: Password del database
            ja_JP: データベースのパスワード
            ko_KR: 데이터베이스 비밀번호
            nb_NO: Databaspassord
            pt_PT: Palavra-passe da base de dados
            ru_RU: Пароль базы данных
            sv_SE: Databaslösenord
            tr_TR: Veritabanı şifresi
            zh_CN: 数据库密码
        - container: DB_NAME
          description:
            de_DE: Datenbankname
            el_GR: Όνομα βάσης δεδομένων
            en_GB: Database name
            en_US: Database name
            fr_FR: Nom de la base de données
            hr_HR: Ime baze podataka
            it_IT: Nome del database
            ja_JP: データベース名
            ko_KR: 데이터베이스 이름
            nb_NO: Databasenavn
            pt_PT: Nome da base de dados
            ru_RU: Имя базы данных
            sv_SE: Databasnamn
            tr_TR: Veritabanı adı
            zh_CN: 数据库名称
        - container: TZ
          description:
            de_DE: Zeitzoneneinstellung
            el_GR: Ρύθμιση ζώνης ώρας
            en_GB: Timezone setting
            en_US: Timezone setting
            fr_FR: Paramètre de fuseau horaire
            hr_HR: Postavka vremenske zone
            it_IT: Impostazione del fuso orario
            ja_JP: タイムゾーン設定
            ko_KR: 시간대 설정
            nb_NO: Tidssoneinnstilling
            pt_PT: Definição de fuso horário
            ru_RU: Настройка часового пояса
            sv_SE: Tidszonsinställning
            tr_TR: Saat dilimi ayarı
            zh_CN: 时区设置
        - container: RETRIEVE_DRIVER
          description:
            de_DE: Abruftreiber-Typ
            el_GR: Τύπος οδηγού ανάκτησης
            en_GB: Retrieval driver type
            en_US: Retrieval driver type
            fr_FR: Type de pilote de récupération
            hr_HR: Vrsta upravljačkog programa za dohvaćanje
            it_IT: Tipo di driver di recupero
            ja_JP: 検索ドライバの種類
            ko_KR: 검색 드라이버 유형
            nb_NO: Retrieval-drivertype
            pt_PT: Tipo de controlador de recuperação
            ru_RU: Тип драйвера извлечения
            sv_SE: Typ av retrievdrivrutin
            tr_TR: Geri çağırma sürücüsü türü
            zh_CN: 检索驱动类型
        - container: DOCREADER_ADDR
          description:
            de_DE: Adresse des Dokumentlese-Service
            el_GR: Διεύθυνση υπηρεσίας ανάγνωσης εγγράφων
            en_GB: Document reader service address
            en_US: Document reader service address
            fr_FR: Adresse du service de lecteur de documents
            hr_HR: Adresa usluge za čitanje dokumenata
            it_IT: Indirizzo del servizio di lettura documenti
            ja_JP: ドキュメントリーダーサービスのアドレス
            ko_KR: 문서 리더 서비스 주소
            nb_NO: Adresse for dokumentlesertjeneste
            pt_PT: Endereço do serviço de leitura de documentos
            ru_RU: Адрес службы чтения документов
            sv_SE: Adress för dokumentläsartjänst
            tr_TR: Belge okuyucu hizmeti adresi
            zh_CN: 文档读取服务地址
        - container: STORAGE_TYPE
          description:
            de_DE: Konfiguration des Speichertyps
            el_GR: Ρύθμιση τύπου αποθήκευσης
            en_GB: Storage type configuration
            en_US: Storage type configuration
            fr_FR: Configuration du type de stockage
            hr_HR: Konfiguracija vrste pohrane
            it_IT: Configurazione del tipo di archiviazione
            ja_JP: ストレージタイプの設定
            ko_KR: 저장소 유형 구성
            nb_NO: Konfigurasjon av lagringstype
            pt_PT: Configuração do tipo de armazenamento
            ru_RU: Конфигурация типа хранилища
            sv_SE: Konfiguration av lagringstyp
            tr_TR: Depolama türü yapılandırması
            zh_CN: 存储类型配置
        - container: LOCAL_STORAGE_BASE_DIR
          description:
            de_DE: Basisverzeichnis für lokalen Speicher
            el_GR: Βασικός κατάλογος για τοπική αποθήκευση
            en_GB: Base directory for local storage
            en_US: Base directory for local storage
            fr_FR: Répertoire de base pour le stockage local
            hr_HR: Osnovni direktorij za lokalnu pohranu
            it_IT: Directory di base per l'archiviazione locale
            ja_JP: ローカルストレージのベースディレクトリ
            ko_KR: 로컬 스토리지 기본 디렉터리
            nb_NO: Basiskatalog for lokal lagring
            pt_PT: Diretório de base para armazenamento local
            ru_RU: Базовый каталог для локального хранилища
            sv_SE: Grundkatalog för lokal lagring
            tr_TR: Yerel depolama için temel dizin
            zh_CN: 本地存储基础目录
        - container: AUTO_RECOVER_DIRTY
          description:
            de_DE: '"Dirty"-Dokumente automatisch wiederherstellen'
            el_GR: Αυτόματη ανάκτηση "dirty" εγγράφων
            en_GB: Auto recover dirty documents
            en_US: Auto recover dirty documents
            fr_FR: Récupération automatique des documents sales
            hr_HR: Automatski oporavi prljave dokumente
            it_IT: Recupero automatico dei documenti dirty
            ja_JP: 不完全なドキュメントを自動修復
            ko_KR: 오류 문서 자동 복구
            nb_NO: Automatisk gjenoppretting av skitne dokumenter
            pt_PT: Recuperação automática de documentos sujos
            ru_RU: Автоматическое восстановление поврежденных документов
            sv_SE: Återställ smutsiga dokumenter automatiskt
            tr_TR: Kirli belgeleri otomatik olarak kurtar
            zh_CN: 自动恢复脏文档
        - container: OLLAMA_BASE_URL
          description:
            de_DE: Ollama-API-Basis-URL
            el_GR: Βασικό URL του Ollama API
            en_GB: Ollama API base URL
            en_US: Ollama API base URL
            fr_FR: URL de base de l'API Ollama
            hr_HR: Osnovni URL Ollama API-ja
            it_IT: URL base dell'API Ollama
            ja_JP: Ollama API のベース URL
            ko_KR: Ollama API 기본 URL
            nb_NO: Ollama API-base-URL
            pt_PT: URL base da API Ollama
            ru_RU: Базовый URL API Ollama
            sv_SE: Ollama API-base-URL
            tr_TR: Ollama API temel URL'si
            zh_CN: Ollama API 基础 URL
        - container: STREAM_MANAGER_TYPE
          description:
            de_DE: Stream-Manager-Typ
            el_GR: Τύπος διαχειριστή ροής
            en_GB: Stream manager type
            en_US: Stream manager type
            fr_FR: Type de gestionnaire de flux
            hr_HR: Vrsta upravitelja strujanja
            it_IT: Tipo di gestore del flusso
            ja_JP: ストリームマネージャーの種類
            ko_KR: 스트림 관리자 유형
            nb_NO: Type strømbehandler
            pt_PT: Tipo de gestor de fluxo
            ru_RU: Тип менеджера потоков
            sv_SE: Typ av strömhanterare
            tr_TR: Akış yöneticisi türü
            zh_CN: 流管理器类型
        - container: REDIS_ADDR
          description:
            de_DE: Redis-Serveradresse
            el_GR: Διεύθυνση διακομιστή Redis
            en_GB: Redis server address
            en_US: Redis server address
            fr_FR: Adresse du serveur Redis
            hr_HR: Adresa Redis poslužitelja
            it_IT: Indirizzo del server Redis
            ja_JP: Redis サーバーのアドレス
            ko_KR: Redis 서버 주소
            nb_NO: Redis-serveradresse
            pt_PT: Endereço do servidor Redis
            ru_RU: Адрес сервера Redis
            sv_SE: Redis-serveradress
            tr_TR: Redis sunucusu adresi
            zh_CN: Redis 服务器地址
        - container: REDIS_PASSWORD
          description:
            de_DE: Redis-Passwort
            el_GR: Κωδικός πρόσβασης Redis
            en_GB: Redis password
            en_US: Redis password
            fr_FR: Mot de passe Redis
            hr_HR: Redis lozinka
            it_IT: Password Redis
            ja_JP: Redis パスワード
            ko_KR: Redis 비밀번호
            nb_NO: Redis-passord
            pt_PT: Palavra-passe Redis
            ru_RU: Пароль Redis
            sv_SE: Redis-lösenord
            tr_TR: Redis şifresi
            zh_CN: Redis 密码
        - container: REDIS_DB
          description:
            de_DE: Redis-Datenbanknummer
            el_GR: Αριθμός βάσης δεδομένων Redis
            en_GB: Redis database number
            en_US: Redis database number
            fr_FR: Numéro de base de données Redis
            hr_HR: Broj Redis baze podataka
            it_IT: Numero del database Redis
            ja_JP: Redis データベース番号
            ko_KR: Redis 데이터베이스 번호
            nb_NO: Redis-databasenummer
            pt_PT: Número da base de dados Redis
            ru_RU: Номер базы данных Redis
            sv_SE: Redis-databasnummer
            tr_TR: Redis veritabanı numarası
            zh_CN: Redis 数据库编号
        - container: REDIS_PREFIX
          description:
            de_DE: Redis-Schlüsselpräfix
            el_GR: Πρόθεμα κλειδιού Redis
            en_GB: Redis key prefix
            en_US: Redis key prefix
            fr_FR: Préfixe de clé Redis
            hr_HR: Redis prefiks ključa
            it_IT: Prefisso chiave Redis
            ja_JP: Redis キープレフィックス
            ko_KR: Redis 키 접두사
            nb_NO: Redis nøkkelprefiks
            pt_PT: Prefixo da chave Redis
            ru_RU: Префикс ключа Redis
            sv_SE: Redis nyckelprefix
            tr_TR: Redis anahtar ön eki
            zh_CN: Redis 键前缀
        - container: TENANT_AES_KEY
          description:
            de_DE: AES-Schlüssel für Mandantenverschlüsselung
            el_GR: Κλειδί AES για κρυπτογράφηση μισθωτή
            en_GB: AES key for tenant encryption
            en_US: AES key for tenant encryption
            fr_FR: Clé AES pour le chiffrement du locataire
            hr_HR: AES ključ za enkripciju stanara
            it_IT: Chiave AES per la crittografia del tenant
            ja_JP: テナント暗号化用 AES キー
            ko_KR: 테넌트 암호화를 위한 AES 키
            nb_NO: AES-nøkkel for leiekryptering
            pt_PT: Chave AES para encriptação de inquilino
            ru_RU: Ключ AES для шифрования клиента
            sv_SE: AES-nyckel för kryptering av klientorganisation
            tr_TR: Kiracı şifrelemesi için AES anahtarı
            zh_CN: 租户加密的 AES 密钥
        - container: CONCURRENCY_POOL_SIZE
          description:
            de_DE: Größe des Parallelitätspools
            el_GR: Μέγεθος συνόλου ταυτόχρονης εκτέλεσης
            en_GB: Concurrency pool size
            en_US: Concurrency pool size
            fr_FR: Taille du pool de concurrence
            hr_HR: Veličina skupa istovremenosti
            it_IT: Dimensione del pool di concorrenza
            ja_JP: 同時実行プールサイズ
            ko_KR: 동시성 풀 크기
            nb_NO: Størrelse på samtidighetspool
            pt_PT: Tamanho do conjunto de simultaneidade
            ru_RU: Размер пула параллелизма
            sv_SE: Storlek på samtidighetspool
            tr_TR: Eşzamanlılık havuzu boyutu
            zh_CN: 并发池大小
        - container: JWT_SECRET
          description:
            de_DE: JWT-Secret-Token
            el_GR: Μυστικό διακριτικό JWT
            en_GB: JWT secret token
            en_US: JWT secret token
            fr_FR: Jeton secret JWT
            hr_HR: Tajni token JWT
            it_IT: Token segreto JWT
            ja_JP: JWT シークレットトークン
            ko_KR: JWT 비밀 토큰
            nb_NO: JWT hemmelig token
            pt_PT: Token secreto JWT
            ru_RU: Секретный токен JWT
            sv_SE: JWT-hemlig token
            tr_TR: JWT gizli belirteci
            zh_CN: JWT 密钥令牌
        - container: MAX_FILE_SIZE_MB
          description:
            de_DE: Maximale Dateigröße für Uploads in MB
            el_GR: Μέγιστο επιτρεπόμενο μέγεθος αρχείου για μεταφόρτωση σε megabytes
            en_GB: Maximum file size allowed for upload in megabytes
            en_US: Maximum file size allowed for upload in megabytes
            fr_FR: Taille maximale du fichier autorisée pour le téléchargement en mégaoctets
            hr_HR: Maksimalna veličina datoteke dopuštena za prijenos u megabajtima
            it_IT: Dimensione massima del file consentita per il caricamento in megabyte
            ja_JP: アップロード可能な最大ファイルサイズ（MB）
            ko_KR: 업로드 허용 최대 파일 크기(MB)
            nb_NO: Maksimal filstørrelse for opplasting i megabytes
            pt_PT: Tamanho máximo de ficheiro permitido para carregamento em megabytes
            ru_RU: Максимальный размер файла для загрузки в мегабайтах
            sv_SE: Maximal filstorlek för uppladdning i megabyte
            tr_TR: Yükleme için izin verilen maksimum dosya boyutu (megabayt cinsinden)
            zh_CN: 最大允许上传文件大小（MB）
      volumes:
        - container: /data/files
          description:
            de_DE: Speicherort für Dokumentdateien
            el_GR: Αποθήκευση αρχείων εγγράφων
            en_GB: Document files storage
            en_US: Document files storage
            fr_FR: Stockage des fichiers de documents
            hr_HR: Pohrana datoteka dokumenata
            it_IT: Archiviazione dei file dei documenti
            ja_JP: ドキュメントファイルのストレージ
            ko_KR: 문서 파일 스토리지
            nb_NO: Lagring av dokumentfiler
            pt_PT: Armazenamento de ficheiros de documentos
            ru_RU: Хранилище файлов документов
            sv_SE: Lagring av dokumentfiler
            tr_TR: Belge dosyaları depolama alanı
            zh_CN: 文档文件存储
  weknora-docreader:
    image: wechatopenai/weknora-docreader:v0.2.14
    container_name: weknora-docreader
    environment:
      - MAX_FILE_SIZE_MB=50
      - MINIO_ENDPOINT=minio:9000
      - MINIO_ACCESS_KEY_ID=minioadmin
      - MINIO_SECRET_ACCESS_KEY=minioadmin
      - MINIO_BUCKET_NAME=weknora
    deploy:
      resources:
        reservations:
          memory: 256M
    healthcheck:
      test:
        - CMD
        - grpc_health_probe
        - -addr=:50051
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 60s
    networks:
      - weknora-network
    restart: unless-stopped
    extra_hosts:
      - host.docker.internal:host-gateway
    x-casaos:
      envs:
        - container: MAX_FILE_SIZE_MB
          description:
            de_DE: Maximale Dateigröße für Uploads in MB
            el_GR: Μέγιστο επιτρεπόμενο μέγεθος αρχείου για μεταφόρτωση σε megabytes
            en_GB: Maximum file size allowed for upload in megabytes
            en_US: Maximum file size allowed for upload in megabytes
            fr_FR: Taille maximale du fichier autorisée pour le téléchargement en mégaoctets
            hr_HR: Maksimalna veličina datoteke dopuštena za prijenos u megabajtima
            it_IT: Dimensione massima del file consentita per il caricamento in megabyte
            ja_JP: アップロード可能な最大ファイルサイズ（MB）
            ko_KR: 업로드 허용 최대 파일 크기(MB)
            nb_NO: Maksimal filstørrelse for opplasting i megabytes
            pt_PT: Tamanho máximo de ficheiro permitido para carregamento em megabytes
            ru_RU: Максимальный размер файла для загрузки в мегабайтах
            sv_SE: Maximal filstorlek för uppladdning i megabyte
            tr_TR: Yükleme için izin verilen maksimum dosya boyutu (megabayt cinsinden)
            zh_CN: 最大允许上传文件大小（MB）
  weknora-postgres:
    image: paradedb/paradedb:v0.18.9-pg17
    container_name: weknora-postgres
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres123!@#
      - POSTGRES_DB=WeKnora
    volumes:
      - type: bind
        source: /DATA/AppData/$AppID/data
        target: /var/lib/postgresql/data
    networks:
      - weknora-network
    healthcheck:
      test:
        - CMD-SHELL
        - pg_isready -U postgres
      interval: 10s
      timeout: 10s
      retries: 3
      start_period: 30s
    deploy:
      resources:
        reservations:
          memory: 512M
    restart: unless-stopped
    stop_grace_period: 1m
    x-casaos:
      envs:
        - container: POSTGRES_USER
          description:
            de_DE: PostgreSQL-Superuser-Name
            el_GR: Όνομα υπερχρήστη PostgreSQL
            en_GB: PostgreSQL superuser name
            en_US: PostgreSQL superuser name
            fr_FR: Nom du superutilisateur PostgreSQL
            hr_HR: Ime superkorisnika PostgreSQL
            it_IT: Nome superutente PostgreSQL
            ja_JP: PostgreSQL スーパーユーザー名
            ko_KR: PostgreSQL 슈퍼유저 이름
            nb_NO: PostgreSQL-superbrukernavn
            pt_PT: Nome de superutilizador PostgreSQL
            ru_RU: Имя суперпользователя PostgreSQL
            sv_SE: PostgreSQL-superanvändarnamn
            tr_TR: PostgreSQL süper kullanıcı adı
            zh_CN: PostgreSQL 超级用户名
        - container: POSTGRES_PASSWORD
          description:
            de_DE: PostgreSQL-Superuser-Passwort
            el_GR: Κωδικός πρόσβασης υπερχρήστη PostgreSQL
            en_GB: PostgreSQL superuser password
            en_US: PostgreSQL superuser password
            fr_FR: Mot de passe du superutilisateur PostgreSQL
            hr_HR: Lozinka superkorisnika PostgreSQL
            it_IT: Password superutente PostgreSQL
            ja_JP: PostgreSQL スーパーユーザーパスワード
            ko_KR: PostgreSQL 슈퍼유저 비밀번호
            nb_NO: PostgreSQL-superbrukerpassord
            pt_PT: Palavra-passe de superutilizador PostgreSQL
            ru_RU: Пароль суперпользователя PostgreSQL
            sv_SE: PostgreSQL-superanvändarlösenord
            tr_TR: PostgreSQL süper kullanıcı şifresi
            zh_CN: PostgreSQL 超级用户密码
        - container: POSTGRES_DB
          description:
            de_DE: Standard-Datenbankname
            el_GR: Προεπιλεγμένο όνομα βάσης δεδομένων
            en_GB: Default database name
            en_US: Default database name
            fr_FR: Nom de la base de données par défaut
            hr_HR: Zadano ime baze podataka
            it_IT: Nome del database predefinito
            ja_JP: デフォルトのデータベース名
            ko_KR: 기본 데이터베이스 이름
            nb_NO: Standard databasenavn
            pt_PT: Nome da base de dados predefinido
            ru_RU: Имя базы данных по умолчанию
            sv_SE: Standarddatabasnamn
            tr_TR: Varsayılan veritabanı adı
            zh_CN: 默认数据库名称
      volumes:
        - container: /var/lib/postgresql/data
          description:
            de_DE: PostgreSQL-Datenverzeichnis
            el_GR: Κατάλογος δεδομένων PostgreSQL
            en_GB: PostgreSQL data directory
            en_US: PostgreSQL data directory
            fr_FR: Répertoire de données PostgreSQL
            hr_HR: Područje podataka PostgreSQL
            it_IT: Directory dei dati PostgreSQL
            ja_JP: PostgreSQL データディレクトリ
            ko_KR: PostgreSQL 데이터 디렉터리
            nb_NO: PostgreSQL-datamappe
            pt_PT: Diretório de dados PostgreSQL
            ru_RU: Каталог данных PostgreSQL
            sv_SE: PostgreSQL-datakatalog
            tr_TR: PostgreSQL veri dizini
            zh_CN: PostgreSQL 数据目录
  weknora-redis:
    image: redis:7.0-alpine
    container_name: weknora-redis
    command:
      - redis-server
      - --requirepass redis123!@#
      - --appendonly
      - yes
    deploy:
      resources:
        reservations:
          memory: 128M
    restart: unless-stopped
    networks:
      - weknora-network
  minio:
    image: minio/minio:RELEASE.2025-09-07T16-13-09Z
    container_name: weknora-minio
    ports:
      - target: 9000
        published: "19000"
        protocol: tcp
      - target: 9001
        published: "19001"
        protocol: tcp
    environment:
      - MINIO_ROOT_USER=minioadmin
      - MINIO_ROOT_PASSWORD=minioadmin
    deploy:
      resources:
        reservations:
          memory: 512M
    command:
      - server
      - /data
      - --console-address
      - :9001
    volumes:
      - type: bind
        source: /DATA/AppData/$AppID/minio-data
        target: /data
    healthcheck:
      test:
        - CMD
        - curl
        - -f
        - http://localhost:9000/minio/health/live
      interval: 30s
      timeout: 20s
      retries: 3
    networks:
      - weknora-network
    restart: unless-stopped
    x-casaos:
      envs:
        - container: MINIO_ROOT_USER
          description:
            de_DE: MinIO-Root-Benutzer
            el_GR: Χρήστης Root MinIO
            en_GB: MinIO root user
            en_US: MinIO root user
            fr_FR: Utilisateur root MinIO
            hr_HR: MinIO root korisnik
            it_IT: Utente root MinIO
            ja_JP: MinIO ルートユーザー
            ko_KR: MinIO 루트 사용자
            nb_NO: MinIO-rootbruker
            pt_PT: Utilizador root MinIO
            ru_RU: Root-пользователь MinIO
            sv_SE: MinIO-rootanvändare
            tr_TR: MinIO kök kullanıcı
            zh_CN: MinIO 管理员用户名
        - container: MINIO_ROOT_PASSWORD
          description:
            de_DE: MinIO-Root-Passwort
            el_GR: Κωδικός πρόσβασης Root MinIO
            en_GB: MinIO root password
            en_US: MinIO root password
            fr_FR: Mot de passe root MinIO
            hr_HR: MinIO root lozinka
            it_IT: Password root MinIO
            ja_JP: MinIO ルートパスワード
            ko_KR: MinIO 루트 비밀번호
            nb_NO: MinIO-rootpassord
            pt_PT: Palavra-passe root MinIO
            ru_RU: Пароль root-пользователя MinIO
            sv_SE: MinIO-rootlösenord
            tr_TR: MinIO kök şifresi
            zh_CN: MinIO 管理员密码
      ports:
        - container: "9000"
          description:
            de_DE: MinIO S3 API-Port
            el_GR: Θύρα MinIO S3 API
            en_GB: MinIO S3 API port
            en_US: MinIO S3 API port
            fr_FR: Port de l'API S3 MinIO
            hr_HR: MinIO S3 API vrata
            it_IT: Porta API S3 MinIO
            ja_JP: MinIO S3 API ポート
            ko_KR: MinIO S3 API 포트
            nb_NO: MinIO S3 API-port
            pt_PT: Porta da API S3 MinIO
            ru_RU: Порт S3 API MinIO
            sv_SE: Port för MinIO S3 API
            tr_TR: MinIO S3 API bağlantı noktası
            zh_CN: MinIO S3 API 端口
        - container: "9001"
          description:
            de_DE: MinIO-Web-Konsolen-Port
            el_GR: Θύρα κονσόλας web MinIO
            en_GB: MinIO web console port
            en_US: MinIO web console port
            fr_FR: Port de la console Web MinIO
            hr_HR: MinIO web konzolna vrata
            it_IT: Porta console web MinIO
            ja_JP: MinIO Web コンソールポート
            ko_KR: MinIO 웹 콘솔 포트
            nb_NO: MinIO webkonsollport
            pt_PT: Porta da consola web MinIO
            ru_RU: Порт веб-консоли MinIO
            sv_SE: Port för MinIO webbkonsol
            tr_TR: MinIO web konsolu bağlantı noktası
            zh_CN: MinIO Web 控制台端口
      volumes:
        - container: /data
          description:
            de_DE: MinIO-Objektspeicherdaten
            el_GR: Δεδομένα αποθήκευσης αντικειμένων MinIO
            en_GB: MinIO object storage data
            en_US: MinIO object storage data
            fr_FR: Données de stockage d'objets MinIO
            hr_HR: Podaci o pohrani objekata MinIO
            it_IT: Dati archiviazione oggetti MinIO
            ja_JP: MinIO オブジェクトストレージデータ
            ko_KR: MinIO 객체 스토리지 데이터
            nb_NO: MinIO objektlagringsdata
            pt_PT: Dados de armazenamento de objetos MinIO
            ru_RU: Данные объектного хранилища MinIO
            sv_SE: MinIO objektlagringsdata
            tr_TR: MinIO nesne depolama verileri
            zh_CN: MinIO 对象存储数据
  jaeger:
    image: jaegertracing/all-in-one:1.76.0
    container_name: weknora-jaeger
    ports:
      - target: 6831
        published: "46831"
        protocol: udp
      - target: 6832
        published: "46832"
        protocol: udp
      - target: 5778
        published: "45778"
        protocol: tcp
      - target: 16686
        published: "16686"
        protocol: tcp
      - target: 4317
        published: "44317"
        protocol: tcp
      - target: 4318
        published: "44318"
        protocol: tcp
      - target: 14250
        published: "14250"
        protocol: tcp
      - target: 14268
        published: "14268"
        protocol: tcp
      - target: 9411
        published: "49411"
        protocol: tcp
    environment:
      - COLLECTOR_OTLP_ENABLED=true
      - COLLECTOR_ZIPKIN_HOST_PORT=:9411
    deploy:
      resources:
        reservations:
          memory: 512M
    volumes:
      - type: bind
        source: /DATA/AppData/$AppID/jaeger
        target: /var/lib/jaeger
    networks:
      - weknora-network
    restart: unless-stopped
    x-casaos:
      envs:
        - container: COLLECTOR_OTLP_ENABLED
          description:
            de_DE: OTLP-Collector aktivieren
            el_GR: Ενεργοποίηση συλλέκτη OTLP
            en_GB: Enable OTLP collector
            en_US: Enable OTLP collector
            fr_FR: Activer le collecteur OTLP
            hr_HR: Omogući OTLP sakupljač
            it_IT: Abilita il collettore OTLP
            ja_JP: OTLP コレクターを有効にする
            ko_KR: OTLP 수집기 활성화
            nb_NO: Aktiver OTLP-samler
            pt_PT: Ativar o coletor OTLP
            ru_RU: Включить коллектор OTLP
            sv_SE: Aktivera OTLP-samlare
            tr_TR: OTLP toplayıcıyı etkinleştir
            zh_CN: 启用 OTLP 收集器
        - container: COLLECTOR_ZIPKIN_HOST_PORT
          description:
            de_DE: Zipkin-Collector-Host und -Port
            el_GR: Κεντρικός υπολογιστής και θύρα συλλέκτη Zipkin
            en_GB: Zipkin collector host and port
            en_US: Zipkin collector host and port
            fr_FR: Hôte et port du collecteur Zipkin
            hr_HR: Zipkin sakupljač host i port
            it_IT: Host e porta del collector Zipkin
            ja_JP: Zipkin コレクターのホストとポート
            ko_KR: Zipkin 수집기 호스트 및 포트
            nb_NO: Zipkin-samler vert og port
            pt_PT: Anfitrião e porta do coletor Zipkin
            ru_RU: Хост и порт коллектора Zipkin
            sv_SE: Zipkin-samlarens värd och port
            tr_TR: Zipkin toplayıcı ana bilgisayar ve bağlantı noktası
            zh_CN: Zipkin 收集器主机和端口
      ports:
        - container: "6831"
          description:
            de_DE: Jaeger-Agent-UDP-compact-Thrift-Protokoll
            el_GR: Πρωτόκολο UDP compact thrift του πράκτορα Jaeger
            en_GB: Jaeger agent UDP compact thrift protocol
            en_US: Jaeger agent UDP compact thrift protocol
            fr_FR: Protocole compact thrift UDP de l'agent Jaeger
            hr_HR: Jaeger agent UDP compact thrift protokol
            it_IT: Protocollo compact thrift UDP dell'agente Jaeger
            ja_JP: Jaeger エージェント UDP compact thrift プロトコル
            ko_KR: Jaeger 에이전트 UDP compact thrift 프로토콜
            nb_NO: Jaeger-agent UDP compact thrift-protokoll
            pt_PT: Protocolo UDP compact thrift do agente Jaeger
            ru_RU: Протокол UDP compact thrift агента Jaeger
            sv_SE: Jaeger-agent UDP compact thrift-protokoll
            tr_TR: Jaeger ajanı UDP compact thrift protokolü
            zh_CN: Jaeger Agent UDP compact thrift 协议
        - container: "6832"
          description:
            de_DE: Jaeger-Agent-UDP-binary-Thrift-Protokoll
            el_GR: Πρωτόκολο UDP binary thrift του πράκτορα Jaeger
            en_GB: Jaeger agent UDP binary thrift protocol
            en_US: Jaeger agent UDP binary thrift protocol
            fr_FR: Protocole binary thrift UDP de l'agent Jaeger
            hr_HR: Jaeger agent UDP binary thrift protokol
            it_IT: Protocollo binary thrift UDP dell'agente Jaeger
            ja_JP: Jaeger エージェント UDP binary thrift プロトコル
            ko_KR: Jaeger 에이전트 UDP binary thrift 프로토콜
            nb_NO: Jaeger-agent UDP binary thrift-protokoll
            pt_PT: Protocolo UDP binary thrift do agente Jaeger
            ru_RU: Протокол UDP binary thrift агента Jaeger
            sv_SE: Jaeger-agent UDP binary thrift-protokoll
            tr_TR: Jaeger ajanı UDP binary thrift protokolü
            zh_CN: Jaeger Agent UDP binary thrift 协议
        - container: "5778"
          description:
            de_DE: Jaeger-Agent-Konfigurationsserver
            el_GR: Διακομιστής ρύθμισης παραμέτρων πράκτορα Jaeger
            en_GB: Jaeger agent configuration server
            en_US: Jaeger agent configuration server
            fr_FR: Serveur de configuration de l'agent Jaeger
            hr_HR: Konfiguracijski poslužitelj Jaeger agenta
            it_IT: Server di configurazione dell'agente Jaeger
            ja_JP: Jaeger エージェント設定サーバー
            ko_KR: Jaeger 에이전트 구성 서버
            nb_NO: Konfigurasjonsserver for Jaeger-agent
            pt_PT: Servidor de configuração do agente Jaeger
            ru_RU: Сервер конфигурации агента Jaeger
            sv_SE: Konfigurationsserver för Jaeger-agent
            tr_TR: Jaeger ajanı yapılandırma sunucusu
            zh_CN: Jaeger Agent 配置服务器
        - container: "16686"
          description:
            de_DE: Jaeger-Web-UI-Port
            el_GR: Θύρα web UI Jaeger
            en_GB: Jaeger web UI port
            en_US: Jaeger web UI port
            fr_FR: Port de l'interface Web Jaeger
            hr_HR: Jaeger web UI vrata
            it_IT: Porta Web UI Jaeger
            ja_JP: Jaeger Web UI ポート
            ko_KR: Jaeger 웹 UI 포트
            nb_NO: Jaeger web UI-port
            pt_PT: Porta da interface Web Jaeger
            ru_RU: Порт веб-интерфейса Jaeger
            sv_SE: Port för Jaeger webbgränssnitt
            tr_TR: Jaeger web arayüzü bağlantı noktası
            zh_CN: Jaeger Web UI 端口
        - container: "4317"
          description:
            de_DE: Jaeger-OTLP-gRPC-Empfänger
            el_GR: Παραλήπτης Jaeger OTLP gRPC
            en_GB: Jaeger OTLP gRPC receiver
            en_US: Jaeger OTLP gRPC receiver
            fr_FR: Récepteur gRPC OTLP Jaeger
            hr_HR: Jaeger OTLP gRPC prijamnik
            it_IT: Ricevitore gRPC OTLP Jaeger
            ja_JP: Jaeger OTLP gRPC レシーバー
            ko_KR: Jaeger OTLP gRPC 수신기
            nb_NO: Jaeger OTLP gRPC-mottaker
            pt_PT: Recetor gRPC OTLP Jaeger
            ru_RU: Приемник gRPC OTLP Jaeger
            sv_SE: Jaeger OTLP gRPC-mottagare
            tr_TR: Jaeger OTLP gRPC alıcısı
            zh_CN: Jaeger OTLP gRPC 接收器
        - container: "4318"
          description:
            de_DE: Jaeger-OTLP-HTTP-Empfänger
            el_GR: Παραλήπτης Jaeger OTLP HTTP
            en_GB: Jaeger OTLP HTTP receiver
            en_US: Jaeger OTLP HTTP receiver
            fr_FR: Récepteur HTTP OTLP Jaeger
            hr_HR: Jaeger OTLP HTTP prijamnik
            it_IT: Ricevitore HTTP OTLP Jaeger
            ja_JP: Jaeger OTLP HTTP レシーバー
            ko_KR: Jaeger OTLP HTTP 수신기
            nb_NO: Jaeger OTLP HTTP-mottaker
            pt_PT: Recetor HTTP OTLP Jaeger
            ru_RU: Приемник HTTP OTLP Jaeger
            sv_SE: Jaeger OTLP HTTP-mottagare
            tr_TR: Jaeger OTLP HTTP alıcısı
            zh_CN: Jaeger OTLP HTTP 接收器
        - container: "14250"
          description:
            de_DE: Jaeger-gRPC-Empfänger
            el_GR: Παραλήπτης Jaeger gRPC
            en_GB: Jaeger gRPC receiver
            en_US: Jaeger gRPC receiver
            fr_FR: Récepteur gRPC Jaeger
            hr_HR: Jaeger gRPC prijamnik
            it_IT: Ricevitore gRPC Jaeger
            ja_JP: Jaeger gRPC レシーバー
            ko_KR: Jaeger gRPC 수신기
            nb_NO: Jaeger gRPC-mottaker
            pt_PT: Recetor gRPC Jaeger
            ru_RU: Приемник gRPC Jaeger
            sv_SE: Jaeger gRPC-mottagare
            tr_TR: Jaeger gRPC alıcısı
            zh_CN: Jaeger gRPC 接收器
        - container: "14268"
          description:
            de_DE: Jaeger-HTTP-Collector
            el_GR: Συλλέκτης HTTP Jaeger
            en_GB: Jaeger HTTP collector
            en_US: Jaeger HTTP collector
            fr_FR: Collecteur HTTP Jaeger
            hr_HR: Jaeger HTTP sakupljač
            it_IT: Collector HTTP Jaeger
            ja_JP: Jaeger HTTP コレクター
            ko_KR: Jaeger HTTP 수집기
            nb_NO: Jaeger HTTP-samler
            pt_PT: Coletor HTTP Jaeger
            ru_RU: Коллектор HTTP Jaeger
            sv_SE: Jaeger HTTP-samlare
            tr_TR: Jaeger HTTP toplayıcı
            zh_CN: Jaeger HTTP 收集器
        - container: "9411"
          description:
            de_DE: Zipkin-kompatibler HTTP-Endpunkt
            el_GR: Τερματικό σημείο HTTP συμβατό με Zipkin
            en_GB: Zipkin compatible HTTP endpoint
            en_US: Zipkin compatible HTTP endpoint
            fr_FR: Point de terminaison HTTP compatible Zipkin
            hr_HR: Zipkin kompatibilan HTTP krajnja točka
            it_IT: Endpoint HTTP compatibile con Zipkin
            ja_JP: Zipkin 互換 HTTP エンドポイント
            ko_KR: Zipkin 호환 HTTP 엔드포인트
            nb_NO: Zipkin-kompatibel HTTP-endepunkt
            pt_PT: Ponto final HTTP compatível com Zipkin
            ru_RU: HTTP-совместимая конечная точка Zipkin
            sv_SE: Zipkin-kompatibel HTTP-slutpunkt
            tr_TR: Zipkin uyumlu HTTP uç noktası
            zh_CN: Zipkin 兼容的 HTTP 端点
      volumes:
        - container: /var/lib/jaeger
          description:
            de_DE: Jaeger-Trace-Datenspeicher
            el_GR: Αποθήκευση δεδομένων παρακολούθησης Jaeger
            en_GB: Jaeger tracing data storage
            en_US: Jaeger tracing data storage
            fr_FR: Stockage des données de traçage Jaeger
            hr_HR: Pohrana podataka praćenja Jaeger
            it_IT: Archiviazione dati di tracing Jaeger
            ja_JP: Jaeger トレースデータストレージ
            ko_KR: Jaeger 추적 데이터 스토리지
            nb_NO: Jaeger sporing datalagring
            pt_PT: Armazenamento de dados de rastreamento Jaeger
            ru_RU: Хранилище данных трассировки Jaeger
            sv_SE: Jaeger spårningsdatalagring
            tr_TR: Jaeger izleme verisi depolama alanı
            zh_CN: Jaeger 追踪数据存储
  neo4j:
    image: neo4j:2025.10.1
    container_name: weknora-neo4j
    profiles:
      - "neo4j"
      - "full"
    volumes:
      - type: bind
        source: /DATA/AppData/$AppID/neo4j-data
        target: /data
    environment:
      - NEO4J_AUTH=neo4j/password
      - NEO4J_apoc_export_file_enabled=true
      - NEO4J_apoc_import_file_enabled=true
      - NEO4J_apoc_import_file_use__neo4j__config=true
      - NEO4JLABS_PLUGINS=["apoc"]
    ports:
      - target: 7474
        published: "47474"
        protocol: tcp
      - target: 7687
        published: "47687"
        protocol: tcp
    restart: unless-stopped
    deploy:
      resources:
        reservations:
          memory: 256M
    networks:
      - weknora-network
    x-casaos:
      envs:
        - container: NEO4J_AUTH
          description:
            de_DE: Neo4j-Authentifizierungsanmeldedaten
            el_GR: Διαπιστευτήρια ελέγου ταυτότητας Neo4j
            en_GB: Neo4j authentication credentials
            en_US: Neo4j authentication credentials
            fr_FR: Identifiants d'authentification Neo4j
            hr_HR: Neo4j autentifikacijski vjerodajnice
            it_IT: Credenziali di autenticazione Neo4j
            ja_JP: Neo4j 認証情報
            ko_KR: Neo4j 인증 자격 증명
            nb_NO: Neo4j-autentiseringslegitimasjon
            pt_PT: Credenciais de autenticação Neo4j
            ru_RU: Учетные данные аутентификации Neo4j
            sv_SE: Neo4j-autentiseringsuppgifter
            tr_TR: Neo4j kimlik doğrulama kimlik bilgileri
            zh_CN: Neo4j 认证凭据
        - container: NEO4J_apoc_export_file_enabled
          description:
            de_DE: APOC-Exportdateiprozeduren aktivieren
            el_GR: Ενεργοποίηση διαδικασιών εξαγωγής αρχείων APOC
            en_GB: Enable APOC export file procedures
            en_US: Enable APOC export file procedures
            fr_FR: Activer les procédures d'exportation de fichiers APOC
            hr_HR: Omogući APOC izvozne datotečne procedure
            it_IT: Abilita le procedure di esportazione file APOC
            ja_JP: APOC ファイルエクスポート手順を有効にする
            ko_KR: APOC 파일 내보내기 절차 활성화
            nb_NO: Aktiver APOC eksportfilprosedyrer
            pt_PT: Ativar procedimentos de exportação de ficheiros APOC
            ru_RU: Включить процедуры экспорта файлов APOC
            sv_SE: Aktivera APOC-fillexportprocedurer
            tr_TR: APOC dosya aktarım yordamlarını etkinleştir
            zh_CN: 启用 APOC 导出文件过程
        - container: NEO4J_apoc_import_file_enabled
          description:
            de_DE: APOC-Importdateiprozeduren aktivieren
            el_GR: Ενεργοποίηση διαδικασιών εισαγωγής αρχείων APOC
            en_GB: Enable APOC import file procedures
            en_US: Enable APOC import file procedures
            fr_FR: Activer les procédures d'importation de fichiers APOC
            hr_HR: Omogući APOC uvozne datotečne procedure
            it_IT: Abilita le procedure di importazione file APOC
            ja_JP: APOC ファイルインポート手順を有効にする
            ko_KR: APOC 파일 가져오기 절차 활성화
            nb_NO: Aktiver APOC importfilprosedyrer
            pt_PT: Ativar procedimentos de importação de ficheiros APOC
            ru_RU: Включить процедуры импорта файлов APOC
            sv_SE: Aktivera APOC-filimportprocedurer
            tr_TR: APOC dosya içe aktarım yordamlarını etkinleştir
            zh_CN: 启用 APOC 导入文件过程
        - container: NEO4J_apoc_import_file_use__neo4j__config
          description:
            de_DE: Neo4j-Konfiguration für APOC-Import verwenden
            el_GR: Χρήση διαμόρφωσης neo4j για εισαγωγή APOC
            en_GB: Use neo4j config for APOC import
            en_US: Use neo4j config for APOC import
            fr_FR: Utiliser la configuration neo4j pour l'importation APOC
            hr_HR: Koristite neo4j konfiguraciju za APOC uvoz
            it_IT: Usa la configurazione neo4j per l'importazione APOC
            ja_JP: APOC インポートに neo4j 設定を使用する
            ko_KR: APOC 가져오기에 neo4j 구성 사용
            nb_NO: Bruk neo4j-konfigurasjon for APOC-import
            pt_PT: Usar configuração neo4j para importação APOC
            ru_RU: Использовать конфигурацию neo4j для импорта APOC
            sv_SE: Använd neo4j-konfiguration för APOC-import
            tr_TR: APOC içe aktarımı için neo4j yapılandırmasını kullan
            zh_CN: 使用 neo4j 配置进行 APOC 导入
        - container: NEO4JLABS_PLUGINS
          description:
            de_DE: Zu installierende Neo4j Labs-Plugins
            el_GR: Πρόσθετα Neo4j Labs προς εγκατάσταση
            en_GB: Neo4j labs plugins to install
            en_US: Neo4j labs plugins to install
            fr_FR: Plugins Neo4j Labs à installer
            hr_HR: Neo4j labs dodaci za instalaciju
            it_IT: Plugin Neo4j Labs da installare
            ja_JP: インストールする Neo4j Labs プラグイン
            ko_KR: 설치할 Neo4j Labs 플러그인
            nb_NO: Neo4j labs-plugins å installere
            pt_PT: Plugins Neo4j Labs para instalar
            ru_RU: Плагины Neo4j Labs для установки
            sv_SE: Neo4j labs-plugins att installera
            tr_TR: Yüklenecek Neo4j labs eklentileri
            zh_CN: 要安装的 Neo4j Labs 插件
      ports:
        - container: "7474"
          description:
            de_DE: Neo4j-Web-Schnittstellen-Port
            el_GR: Θύρα διαδικτυακής διεπαφής Neo4j
            en_GB: Neo4j web interface port
            en_US: Neo4j web interface port
            fr_FR: Port de l'interface Web Neo4j
            hr_HR: Neo4j web sučelje vrata
            it_IT: Porta interfaccia Web Neo4j
            ja_JP: Neo4j Web インターフェースポート
            ko_KR: Neo4j 웹 인터페이스 포트
            nb_NO: Neo4j webgrensesnittsport
            pt_PT: Porta da interface Web Neo4j
            ru_RU: Порт веб-интерфейса Neo4j
            sv_SE: Port för Neo4j webbgränssnitt
            tr_TR: Neo4j web arayüzü bağlantı noktası
            zh_CN: Neo4j Web 界面端口
        - container: "7687"
          description:
            de_DE: Neo4j-Bolt-Protokoll-Port
            el_GR: Θύρα πρωτοκόλλου Bolt Neo4j
            en_GB: Neo4j bolt protocol port
            en_US: Neo4j bolt protocol port
            fr_FR: Port du protocole Bolt Neo4j
            hr_HR: Neo4j bolt protokol vrata
            it_IT: Porta protocollo Bolt Neo4j
            ja_JP: Neo4j Bolt プロトコルポート
            ko_KR: Neo4j Bolt 프로토콜 포트
            nb_NO: Neo4j bolt-protokollport
            pt_PT: Porta do protocolo Bolt Neo4j
            ru_RU: Порт протокола Bolt Neo4j
            sv_SE: Port för Neo4j bolt-protokoll
            tr_TR: Neo4j bolt protokol bağlantı noktası
            zh_CN: Neo4j Bolt 协议端口
      volumes:
        - container: /data
          description:
            de_DE: Neo4j-Graphdatenbankspeicher
            el_GR: Αποθήκευση βάσης δεδομένων γράφου Neo4j
            en_GB: Neo4j graph database storage
            en_US: Neo4j graph database storage
            fr_FR: Stockage de base de données de graphes Neo4j
            hr_HR: Pohrana grafove baze podataka Neo4j
            it_IT: Archiviazione database grafo Neo4j
            ja_JP: Neo4j グラフデータベースストレージ
            ko_KR: Neo4j 그래프 데이터베이스 스토리지
            nb_NO: Neo4j grafdatabaselagring
            pt_PT: Armazenamento de base de dados de grafos Neo4j
            ru_RU: Хранилище графовой базы данных Neo4j
            sv_SE: Neo4j grafdatabaslagring
            tr_TR: Neo4j graf veritabanı depolama alanı
            zh_CN: Neo4j 图数据库存储
  qdrant:
    image: qdrant/qdrant:v1.16.2
    container_name: weknora-qdrant
    profiles:
      - "qdrant"
      - "full"
    ports:
      - target: 6333
        published: "46333"
        protocol: tcp
      - target: 6334
        published: "46334"
        protocol: tcp
    volumes:
      - type: bind
        source: /DATA/AppData/$AppID/storage
        target: /qdrant/storage
    networks:
      - weknora-network
    restart: unless-stopped
    deploy:
      resources:
        reservations:
          memory: 256M
    x-casaos:
      ports:
        - container: "6333"
          description:
            de_DE: Qdrant REST API-Port
            el_GR: Θύρα REST API Qdrant
            en_GB: Qdrant REST API port
            en_US: Qdrant REST API port
            fr_FR: Port de l'API REST Qdrant
            hr_HR: Qdrant REST API vrata
            it_IT: Porta API REST Qdrant
            ja_JP: Qdrant REST API ポート
            ko_KR: Qdrant REST API 포트
            nb_NO: Qdrant REST API-port
            pt_PT: Porta da API REST Qdrant
            ru_RU: Порт REST API Qdrant
            sv_SE: Port för Qdrant REST API
            tr_TR: Qdrant REST API bağlantı noktası
            zh_CN: Qdrant REST API 端口
        - container: "6334"
          description:
            de_DE: Qdrant-gRPC-API-Port
            el_GR: Θύρα gRPC API Qdrant
            en_GB: Qdrant gRPC API port
            en_US: Qdrant gRPC API port
            fr_FR: Port de l'API gRPC Qdrant
            hr_HR: Qdrant gRPC API vrata
            it_IT: Porta API gRPC Qdrant
            ja_JP: Qdrant gRPC API ポート
            ko_KR: Qdrant gRPC API 포트
            nb_NO: Qdrant gRPC API-port
            pt_PT: Porta da API gRPC Qdrant
            ru_RU: Порт API gRPC Qdrant
            sv_SE: Port för Qdrant gRPC API
            tr_TR: Qdrant gRPC API bağlantı noktası
            zh_CN: Qdrant gRPC API 端口
      volumes:
        - container: /qdrant/storage
          description:
            de_DE: Qdrant-Vektordatenbankspeicher
            el_GR: Αποθήκευση βάσης δεδομένων διανυσμάτων Qdrant
            en_GB: Qdrant vector database storage
            en_US: Qdrant vector database storage
            fr_FR: Stockage de base de données vectorielle Qdrant
            hr_HR: Pohrana baze podataka vektora Qdrant
            it_IT: Archiviazione database vettoriale Qdrant
            ja_JP: Qdrant ベクターデータベースストレージ
            ko_KR: Qdrant 벡터 데이터베이스 스토리지
            nb_NO: Qdrant vektordatabaselagring
            pt_PT: Armazenamento de base de dados vetorial Qdrant
            ru_RU: Хранилище векторной базы данных Qdrant
            sv_SE: Qdrant vektordatabaslagring
            tr_TR: Qdrant vektör veritabanı depolama alanı
            zh_CN: Qdrant 向量数据库存储
networks:
  weknora-network:
    driver: bridge
x-casaos:
  title:
    de_DE: WeKnora
    el_GR: WeKnora
    en_GB: WeKnora
    en_US: WeKnora
    fr_FR: WeKnora
    hr_HR: WeKnora
    it_IT: WeKnora
    ja_JP: WeKnora
    ko_KR: WeKnora
    nb_NO: WeKnora
    pt_PT: WeKnora
    ru_RU: WeKnora
    sv_SE: WeKnora
    tr_TR: WeKnora
    zh_CN: WeKnora
  tagline:
    de_DE: WeKnora ist ein LLM-gestütztes Framework für tiefes Dokumentenverständnis und semantischen Abruf, speziell entwickelt für komplexe, heterogene Dokumente.
    el_GR: Το WeKnora είναι ένα πλαίσιο που βασίζεται σε LLM, σχεδιασμένο για βαθιά κατανόηση εγγράφων και σημασιολογική ανάκτηση, ειδικά για την επεξεργασία σύνθετων και ετερογενών εγγράφων.
    en_GB: WeKnora is an LLM-powered framework designed for deep document understanding and semantic retrieval, especially for handling complex, heterogeneous documents.
    en_US: WeKnora is an LLM-powered framework designed for deep document understanding and semantic retrieval, especially for handling complex, heterogeneous documents.
    fr_FR: WeKnora est un framework basé sur les LLM conçu pour une compréhension approfondie des documents et la récupération sémantique, particulièrement adapté aux documents complexes et hétérogènes.
    hr_HR: WeKnora je okvir na bazi LLM-a dizajniran za dubinsko razumijevanje dokumenata i semantičko pretraživanje, posebno za rukovanje složenim i heterogenim dokumentima.
    it_IT: WeKnora è un framework basato su LLM progettato per la comprensione approfondita dei documenti e il reperimento semantico, specificamente per la gestione di documenti complessi ed eterogenei.
    ja_JP: WeKnoraは、大規模言語モデル（LLM）を活用したフレームワークで、深層的なドキュメント理解とセマンティック検索を目的として設計されており、特に複雑で異種のドキュメントを扱うのに適しています。
    ko_KR: WeKnora는 심층 문서 이해 및 의미 체계 검색을 위해 설계된 LLM 기반 프레임워크로, 특히 복잡하고 이기종 문서를 처리하는 데 적합합니다.
    nb_NO: WeKnora er et LLM-drevet rammeverk designet for dyp dokumentforståelse og semantisk gjenfinning, spesielt for håndtering av komplekse, heterogene dokumenter.
    pt_PT: O WeKnora é uma framework baseada em LLM projetado para compreensão profunda de documentos e recuperação semântica, especialmente para lidar com documentos complexos e heterogéneos.
    ru_RU: WeKnora — это платформа на базе LLM, предназначенная для глубокого понимания документов и семантического поиска, особенно для работы со сложными и разнородными документами.
    sv_SE: WeKnora är ett LLM-baserat ramverk designat för djup dokumentförståelse och semantisk hämtning, särskilt för hantering av komplexa och heterogena dokument.
    tr_TR: WeKnora, Büyük Dil Modelleri (LLM) tabanlı, özellikle karmaşık ve heterojen belgelerin işlenmesine yönelik, derin belge anlama ve anlamsal geri çağırma çerçevesidir.
    zh_CN: WeKnora 是一个由大语言模型驱动的框架，专为深度文档理解和语义检索而设计，特别适用于处理复杂、异构的文档。
  description:
    de_DE: |
      WeKnora ist ein Framework für tiefes Dokumentenverständnis und semantischen Abruf, das auf Großen Sprachmodellen (LLM) basiert und speziell für Dokumentszenarien mit komplexen Strukturen und heterogenen Inhalten entwickelt wurde. Es verfolgt eine modulare Architektur, die Schlüsseltechnologien wie multimodale Vorverarbeitung, semantische Vektorindizierung, intelligente Abrufung und Inferenz großer Modelle integriert. Basierend auf dem Retrieval-Augmented Generation (RAG)-Paradigma erreicht es kontextbewusste, hochwertige Q&A-Fähigkeiten. WeKnora kann Dokumenteninhalte in verschiedenen Formaten tief verstehen, relevante Dokumentenfragmente mit Sprachmodellinferenz kombinieren und genaue, kohärente semantische Ergebnisse ausgeben.

      **Hauptmerkmale:**
      - Multimodales Deep Parsing: Unterstützt die Extraktion strukturierter Inhalte aus verschiedenen Formaten wie PDF, Word, TXT, Bildern, einschließlich OCR-Bildtexterkennung.
      - Semantische Vektorindizierung und Intelligente Abrufung: Erreicht hochpräzise semantische Übereinstimmung und Wiedererkennung durch eine Kombination aus Vektorabrufung, Schlüsselwortabrufung und sogar wissensgraph-erweiterter Abrufung.
      - RAG Closed-Loop Q&A-Generierung: Generiert genaue und kohärente Inhaltsantworten durch Nutzung von Inferenz großer Sprachmodelle und der Fusion von Abruffragmenten.
      - Agentenmodus-erweiterte Funktionen: Unterstützt den ReACT Agent-Modus, der während mehrstufiger Iterationen integrierte Tools, externe Websuche usw. aufrufen kann, um die Verarbeitung komplexer Aufgaben zu verbessern.
      - Verwaltung von Wissensbasen verschiedener Typen: Kann FAQ- und dokumentenbasierte Wissensbasen erstellen und Tags, den Stapelimport von Dateien oder URLs flexibel verwalten.
      - Konfigurierbare Dialogstrategie und Benutzeroberfläche: Bietet eine intuitive Weboberfläche und REST API, die die Online-Anpassung von Modellen, Abrufschwellen und Prompt zur Steuerung des Dialogverhaltens ermöglicht.

      **Erfahren Sie mehr:**
      - [Offizielle Website](https://weknora.weixin.qq.com)
      - [GitHub-Link](https://github.com/Tencent/WeKnora)
    el_GR: |
      Το WeKnora είναι ένα πλαίσιο βαθιάς κατανόησης εγγράφων και σημασιολογικής ανάκτησης βασισμένο σε Μεγάλα Γλωσσικά Μοντέλα (LLM), ειδικά σχεδιασμένο για σενάρια εγγράφων με σύνθετες δομές και ετερογενές περιεχόμενο. Υιοθετεί μια αρθρωτή αρχιτεκτονική, ενσωματώνοντας βασικές τεχνολογίες όπως η πολυτροπική προεπεξεργασία, η σημασιολογική ευρετηρίαση διανυσμάτων, η έξυπνη ανάκτηση και η εξαγωγή συμπερασμάτων μεγάλου μοντέλου. Βασισμένο στο παράδειγμα Retrieval-Augmented Generation (RAG), επιτυγχάνει δυνατότητες Q&A υψηλής ποιότητας με επίγνωση του πλαισίου. Το WeKnora μπορεί να κατανοήσει σε βάθος το περιεχόμενο εγγράφων σε διαφορετικές μορφές, να συνδυάσει σχετικά αποσπάσματα εγγράφων με εξαγωγή συμπερασμάτων γλωσσικού μοντέλου και να εξάγει ακριβή, συνεκτικά σημασιολογικά αποτελέσματα.

      **Βασικά Χαρακτηριστικά:**
      - Πολυτροπική Βαθιά Ανάλυση: Υποστηρίζει την εξαγωγή δομημένου περιεχομένου από διάφορες μορφές όπως PDF, Word, TXT, εικόνες, συμπεριλαμβανομένης της αναγνώρισης κειμένου εικόνας OCR.
      - Σημασιολογική Ευρετηρίαση Διανυσμάτων και Έξυπνη Ανάκτηση: Επιτυγχάνει αντιστοίχιση και ανάκληση σημασιολογίας υψηλής ακρίβειας μέσω συνδυασμού ανάκτησης διανυσμάτων, ανάκτησης λέξεων-κλειδιών, ακόμη και ανάκτησης ενισχυμένης με γράφημα γνώσης.
      - Δημιουργία Q&A Κλειστού Βρόχου RAG: Δημιουργεί ακριβείς και συνεκτικές απαντήσεις περιεχομένου αξιοποιώντας την εξαγωγή συμπερασμάτων μεγάλου γλωσσικού μοντέλου και τη σύντηξη αποσπασμάτων ανάκτησης.
      - Βελτιωμένες Δυνατότητες Λειτουργίας Agent: Υποστηρίζει τη λειτουργία ReACT Agent, η οποία μπορεί να καλέσει ενσωματωμένα εργαλεία, εξωτερική αναζήτηση ιστού κ.λπ., κατά τη διάρκεια επαναλήψεων πολλαπλών γύρων, για τη βελτίωση των δυνατοτήτων επεξεργασίας σύνθετων εργασιών.
      - Διαχείριση Βάσεων Γνώσης Πολλαπλών Τύπων: Μπορεί να δημιουργήσει βάσεις γνώσης τύπου FAQ και εγγράφων, και να διαχειρίζεται ευέλικτα ετικέτες, μαζική εισαγωγή αρχείων ή URL.
      - Διαμορφώσιμη Στρατηγική Διαλόγου και UI: Παρέχει μια διαισθητική διεπαφή Web και REST API, επιτρέποντας την online προσαρμογή μοντέλων, ορίων ανάκτησης και Prompt για τον έλεγχο της συμπεριφοράς του διαλόγου.

      **Μάθετε Περισσότερα:**
      - [Επίσημη Ιστοσελίδα](https://weknora.weixin.qq.com)
      - [Σύνδεσμος GitHub](https://github.com/Tencent/WeKnora)
    en_GB: |
      WeKnora is a deep document understanding and semantic retrieval framework based on Large Language Models (LLM), specifically designed for document scenarios with complex structures and heterogeneous content. It adopts a modular architecture, integrating key technologies such as multimodal preprocessing, semantic vector indexing, intelligent retrieval, and large model inference. Based on the Retrieval-Augmented Generation (RAG) paradigm, it achieves context-aware, high-quality Q&A capabilities. WeKnora can deeply understand document content in different formats, combine relevant document fragments with language model inference, and output accurate, coherent semantic results.

      **Key Features:**
      - Multimodal Deep Parsing: Supports structured content extraction from various formats such as PDF, Word, TXT, images, including OCR image text recognition.
      - Semantic Vector Indexing and Intelligent Retrieval: Achieves high-precision semantic matching and recall through a combination of vector retrieval, keyword retrieval, and even knowledge graph-enhanced retrieval.
      - RAG Closed-Loop Q&A Generation: Generates accurate and coherent content answers by leveraging large language model inference and retrieval fragment fusion.
      - Agent Mode Enhanced Capabilities: Supports ReACT Agent mode, which can call built-in tools, external web search, etc., during multi-round iterations, to improve complex task processing capabilities.
      - Multi-type Knowledge Base Management: Can create FAQ and document-type knowledge bases, and flexibly manage tags, batch import files or URLs.
      - Configurable Dialogue Strategy and UI: Provides an intuitive Web interface and REST API, allowing online adjustment of models, retrieval thresholds, and Prompt to control dialogue behavior.

      **Learn More:**
      - [Official Website](https://weknora.weixin.qq.com)
      - [GitHub Link](https://github.com/Tencent/WeKnora)
    en_US: |
      WeKnora is a deep document understanding and semantic retrieval framework based on Large Language Models (LLM), specifically designed for document scenarios with complex structures and heterogeneous content. It adopts a modular architecture, integrating key technologies such as multimodal preprocessing, semantic vector indexing, intelligent retrieval, and large model inference. Based on the Retrieval-Augmented Generation (RAG) paradigm, it achieves context-aware, high-quality Q&A capabilities. WeKnora can deeply understand document content in different formats, combine relevant document fragments with language model inference, and output accurate, coherent semantic results.

      **Key Features:**
      - Multimodal Deep Parsing: Supports structured content extraction from various formats such as PDF, Word, TXT, images, including OCR image text recognition.
      - Semantic Vector Indexing and Intelligent Retrieval: Achieves high-precision semantic matching and recall through a combination of vector retrieval, keyword retrieval, and even knowledge graph-enhanced retrieval.
      - RAG Closed-Loop Q&A Generation: Generates accurate and coherent content answers by leveraging large language model inference and retrieval fragment fusion.
      - Agent Mode Enhanced Capabilities: Supports ReACT Agent mode, which can call built-in tools, external web search, etc., during multi-round iterations, to improve complex task processing capabilities.
      - Multi-type Knowledge Base Management: Can create FAQ and document-type knowledge bases, and flexibly manage tags, batch import files or URLs.
      - Configurable Dialogue Strategy and UI: Provides an intuitive Web interface and REST API, allowing online adjustment of models, retrieval thresholds, and Prompt to control dialogue behavior.

      **Learn More:**
      - [Official Website](https://weknora.weixin.qq.com)
      - [GitHub Link](https://github.com/Tencent/WeKnora)
    fr_FR: |
      WeKnora est un cadre de compréhension approfondie de documents et de récupération sémantique basé sur les Grands Modèles de Langage (LLM), spécifiquement conçu pour les scénarios de documents avec des structures complexes et un contenu hétérogène. Il adopte une architecture modulaire, intégrant des technologies clés telles que le prétraitement multimodal, l'indexation vectorielle sémantique, la récupération intelligente et l'inférence de grands modèles. Basé sur le paradigme de Génération Augmentée par Récupération (RAG), il offre des capacités de Q&A de haute qualité et sensibles au contexte. WeKnora peut comprendre en profondeur le contenu des documents dans différents formats, combiner les fragments de documents pertinents avec l'inférence du modèle de langage et produire des résultats sémantiques précis et cohérents.

      **Fonctionnalités Clés :**
      - Analyse Profonde Multimodale : Prend en charge l'extraction de contenu structuré à partir de divers formats tels que PDF, Word, TXT, images, y compris la reconnaissance de texte d'image OCR.
      - Indexation Vectorielle Sémantique et Récupération Intelligente : Atteint une correspondance sémantique et un rappel de haute précision grâce à une combinaison de récupération vectorielle, de récupération par mots-clés et même de récupération améliorée par graphe de connaissances.
      - Génération de Q&A en Boucle Fermée RAG : Génère des réponses de contenu précises et cohérentes en tirant parti de l'inférence de grands modèles de langage et de la fusion de fragments de récupération.
      - Capacités Améliorées du Mode Agent : Prend en charge le mode Agent ReACT, qui peut appeler des outils intégrés, la recherche web externe, etc., pendant les itérations multi-tours, pour améliorer les capacités de traitement des tâches complexes.
      - Gestion de Bases de Connaissances Multi-types : Peut créer des bases de connaissances de type FAQ et document, et gérer de manière flexible les balises, l'importation par lots de fichiers ou d'URL.
      - Stratégie de Dialogue et Interface Utilisateur Configurables : Fournit une interface Web intuitive et une API REST, permettant l'ajustement en ligne des modèles, des seuils de récupération et du Prompt pour contrôler le comportement du dialogue.

      **En savoir plus :**
      - [Site Officiel](https://weknora.weixin.qq.com)
      - [Lien GitHub](https://github.com/Tencent/WeKnora)
    hr_HR: |
      WeKnora je okvir za dubinsko razumijevanje dokumenata i semantičko dohvaćanje, temeljen na Velikim jezičnim modelima (LLM), posebno dizajniran za scenarije dokumenata sa složenim strukturama i heterogenim sadržajem. Usvaja modularnu arhitekturu, integrirajući ključne tehnologije kao što su multimodalna predobrada, semantičko vektorsko indeksiranje, inteligentno dohvaćanje i zaključivanje velikih modela. Temeljen na paradigmi Retrieval-Augmented Generation (RAG), postiže kontekstualno svjesne, visokokvalitetne mogućnosti pitanja i odgovora. WeKnora može duboko razumjeti sadržaj dokumenata u različitim formatima, kombinirati relevantne fragmente dokumenata sa zaključivanjem jezičnog modela i isporučiti točne, koherentne semantičke rezultate.

      **Ključne značajke:**
      - Multimodalno dubinsko parsiranje: Podržava ekstrakciju strukturiranog sadržaja iz različitih formata kao što su PDF, Word, TXT, slike, uključujući OCR prepoznavanje teksta na slikama.
      - Semantičko vektorsko indeksiranje i inteligentno dohvaćanje: Postiže visoko precizno semantičko podudaranje i opoziv kroz kombinaciju vektorskog dohvaćanja, dohvaćanja ključnih riječi, pa čak i dohvaćanja poboljšanog grafom znanja.
      - RAG zatvorena petlja generiranja pitanja i odgovora: Generira točne i koherentne sadržajne odgovore iskorištavanjem zaključivanja velikog jezičnog modela i fuzije fragmenata dohvaćanja.
      - Poboljšane mogućnosti načina rada agenta: Podržava ReACT Agent način rada, koji može pozivati ugrađene alate, vanjsko web pretraživanje itd., tijekom višestrukih iteracija, kako bi poboljšao mogućnosti obrade složenih zadataka.
      - Upravljanje bazama znanja više vrsta: Može stvarati baze znanja tipa FAQ i dokumenata, te fleksibilno upravljati oznakama, skupnim uvozom datoteka ili URL-ova.
      - Konfigurabilna strategija dijaloga i korisničko sučelje: Pruža intuitivno web sučelje i REST API, omogućujući online prilagodbu modela, pragova dohvaćanja i Prompt-a za kontrolu ponašanja dijaloga.

      **Saznajte više:**
      - [Službena web stranica](https://weknora.weixin.qq.com)
      - [GitHub poveznica](https://github.com/Tencent/WeKnora)
    it_IT: |
      WeKnora è un framework di comprensione profonda dei documenti e recupero semantico basato su Grandi Modelli Linguistici (LLM), specificamente progettato per scenari documentali con strutture complesse e contenuti eterogenei. Adotta un'architettura modulare, integrando tecnologie chiave come la pre-elaborazione multimodale, l'indicizzazione vettoriale semantica, il recupero intelligente e l'inferenza di modelli di grandi dimensioni. Basato sul paradigma Retrieval-Augmented Generation (RAG), raggiunge capacità di Q&A di alta qualità e contestualmente consapevoli. WeKnora può comprendere in profondità il contenuto dei documenti in diversi formati, combinare frammenti di documenti pertinenti con l'inferenza del modello linguistico e produrre risultati semantici accurati e coerenti.

      **Caratteristiche principali:**
      - Parsing Profondo Multimodale: Supporta l'estrazione di contenuti strutturati da vari formati come PDF, Word, TXT, immagini, inclusa la riconoscimento del testo delle immagini OCR.
      - Indicizzazione Vettoriale Semantica e Recupero Intelligente: Ottiene corrispondenza semantica e richiamo ad alta precisione attraverso una combinazione di recupero vettoriale, recupero per parole chiave e persino recupero potenziato da grafi di conoscenza.
      - Generazione Q&A a Ciclo Chiuso RAG: Genera risposte di contenuto accurate e coerenti sfruttando l'inferenza di modelli linguistici di grandi dimensioni e la fusione di frammenti di recupero.
      - Capacità Potenziate in Modalità Agente: Supporta la modalità ReACT Agent, che può richiamare strumenti integrati, ricerca web esterna, ecc., durante iterazioni multi-turno, per migliorare le capacità di elaborazione di attività complesse.
      - Gestione di Basi di Conoscenza Multi-tipo: Può creare basi di conoscenza di tipo FAQ e documentale, e gestire in modo flessibile tag, importazione in batch di file o URL.
      - Strategia di Dialogo e UI Configurabili: Fornisce un'interfaccia Web intuitiva e un'API REST, consentendo la regolazione online di modelli, soglie di recupero e Prompt per controllare il comportamento del dialogo.

      **Scopri di più:**
      - [Sito Ufficiale](https://weknora.weixin.qq.com)
      - [Link GitHub](https://github.com/Tencent/WeKnora)
    ja_JP: |
      WeKnoraは、大規模言語モデル（LLM）に基づいた、深い文書理解とセマンティック検索フレームワークであり、複雑な構造と異種コンテンツを持つ文書シナリオのために特別に設計されています。モジュール式アーキテクチャを採用し、マルチモーダル前処理、セマンティックベクトルインデックス作成、インテリジェント検索、大規模モデル推論などの主要技術を統合しています。Retrieval-Augmented Generation（RAG）パラダイムに基づいて、コンテキストを認識した高品質なQ&A機能を実現します。WeKnoraは、異なる形式の文書コンテンツを深く理解し、関連する文書フラグメントと言語モデル推論を組み合わせ、正確で一貫性のあるセマンティックな結果を出力できます。

      **主な機能:**
      - マルチモーダル深層解析：PDF、Word、TXT、画像などの様々な形式からの構造化コンテンツ抽出をサポートし、OCR画像テキスト認識も含まれます。
      - セマンティックベクトルインデックス作成とインテリジェント検索：ベクトル検索、キーワード検索、さらにはナレッジグラフ強化検索の組み合わせにより、高精度のセマンティックマッチングとリコールを実現します。
      - RAGクローズドループQ&A生成：大規模言語モデル推論と検索フラグメント融合を活用して、正確で一貫性のあるコンテンツ回答を生成します。
      - エージェントモード強化機能：ReACT Agentモードをサポートし、多段階の反復中に組み込みツールや外部Web検索などを呼び出すことで、複雑なタスク処理能力を向上させることができます。
      - 多種知識ベース管理：FAQおよび文書タイプの知識ベースを作成し、タグ、ファイルまたはURLの一括インポートを柔軟に管理できます。
      - 設定可能な対話戦略とUI：直感的なWebインターフェースとREST APIを提供し、モデル、検索しきい値、およびプロンプトをオンラインで調整して対話動作を制御できます。

      **詳細はこちら:**
      - [公式サイト](https://weknora.weixin.qq.com)
      - [GitHubリンク](https://github.com/Tencent/WeKnora)
    ko_KR: |
      WeKnora는 대규모 언어 모델(LLM)을 기반으로 하는 심층 문서 이해 및 의미론적 검색 프레임워크로, 복잡한 구조와 이기종 콘텐츠를 가진 문서 시나리오를 위해 특별히 설계되었습니다. 다중 모드 전처리, 의미론적 벡터 인덱싱, 지능형 검색 및 대규모 모델 추론과 같은 핵심 기술을 통합하는 모듈식 아키텍처를 채택합니다. 검색 증강 생성(RAG) 패러다임을 기반으로 상황 인지적이고 고품질의 Q&A 기능을 달성합니다. WeKnora는 다양한 형식의 문서 콘텐츠를 깊이 이해하고, 관련 문서 조각을 언어 모델 추론과 결합하여 정확하고 일관된 의미론적 결과를 출력할 수 있습니다.

      **주요 기능:**
      - 다중 모드 심층 구문 분석: PDF, Word, TXT, 이미지 등 다양한 형식에서 구조화된 콘텐츠 추출을 지원하며, OCR 이미지 텍스트 인식도 포함합니다.
      - 의미론적 벡터 인덱싱 및 지능형 검색: 벡터 검색, 키워드 검색, 심지어 지식 그래프 강화 검색의 조합을 통해 고정밀 의미론적 일치 및 회수를 달성합니다.
      - RAG 폐쇄 루프 Q&A 생성: 대규모 언어 모델 추론 및 검색 조각 융합을 활용하여 정확하고 일관된 콘텐츠 답변을 생성합니다.
      - 에이전트 모드 강화 기능: ReACT 에이전트 모드를 지원하여 다중 라운드 반복 중에 내장 도구, 외부 웹 검색 등을 호출하여 복잡한 작업 처리 기능을 향상시킬 수 있습니다.
      - 다중 유형 지식 베이스 관리: FAQ 및 문서 유형 지식 베이스를 생성하고, 태그, 파일 또는 URL의 일괄 가져오기를 유연하게 관리할 수 있습니다.
      - 구성 가능한 대화 전략 및 UI: 직관적인 웹 인터페이스 및 REST API를 제공하여 모델, 검색 임계값 및 프롬프트를 온라인으로 조정하여 대화 동작을 제어할 수 있습니다.

      **더 알아보기:**
      [공식 웹사이트](https://weknora.weixin.qq.com)
      [GitHub 링크](https://github.com/Tencent/WeKnora)
    nb_NO: |
      WeKnora er et rammeverk for dyp dokumentforståelse og semantisk gjenfinning basert på Store språkmodeller (LLM), spesielt designet for dokumentscenarier med komplekse strukturer og heterogent innhold. Det vedtar en modulær arkitektur som integrerer nøkkelteknologier som multimodal forbehandling, semantisk vektorindeksering, intelligent gjenfinning og inferens av store modeller. Basert på Retrieval-Augmented Generation (RAG)-paradigmet, oppnår det kontekstbevisste, høykvalitets Q&A-funksjoner. WeKnora kan dypt forstå dokumentinnhold i forskjellige formater, kombinere relevante dokumentfragmenter med språkmodellinferens, og produsere nøyaktige, sammenhengende semantiske resultater.

      **Nøkkelfunksjoner:**
      - Multimodal dyp parsing: Støtter strukturert innholdsutvinning fra ulike formater som PDF, Word, TXT, bilder, inkludert OCR-bildetekstgjenkjenning.
      - Semantisk vektorindeksering og intelligent gjenfinning: Oppnår høypresisjons semantisk matching og gjenkalling gjennom en kombinasjon av vektorgjenfinning, nøkkelordgjenfinning og til og med kunnskapsgraf-forbedret gjenfinning.
      - RAG lukket-sløyfe Q&A-generering: Genererer nøyaktige og sammenhengende innholdssvar ved å utnytte inferens av store språkmodeller og fusjon av gjenfinningsfragmenter.
      - Agentmodus forbedrede funksjoner: Støtter ReACT Agent-modus, som kan kalle innebygde verktøy, eksternt websøk, etc., under flergangsiterasjoner, for å forbedre behandlingskapasiteten for komplekse oppgaver.
      - Flertype kunnskapsbaseadministrasjon: Kan opprette FAQ- og dokumenttype kunnskapsbaser, og fleksibelt administrere tagger, masseimport av filer eller URL-er.
      - Konfigurerbar dialogstrategi og UI: Gir et intuitivt webgrensesnitt og REST API, som tillater online justering av modeller, gjenfinningsterskler og Prompt for å kontrollere dialogatferd.

      **Lær mer:**
      - [Offisiell nettside](https://weknora.weixin.qq.com)
      - [GitHub-lenke](https://github.com/Tencent/WeKnora)
    pt_PT: |
      WeKnora é uma estrutura de compreensão profunda de documentos e recuperação semântica baseada em Grandes Modelos de Linguagem (LLM), especificamente projetada para cenários de documentos com estruturas complexas e conteúdo heterogéneo. Adota uma arquitetura modular, integrando tecnologias chave como pré-processamento multimodal, indexação vetorial semântica, recuperação inteligente e inferência de grandes modelos. Baseado no paradigma Retrieval-Augmented Generation (RAG), alcança capacidades de Q&A de alta qualidade e com consciência de contexto. O WeKnora pode compreender profundamente o conteúdo de documentos em diferentes formatos, combinar fragmentos de documentos relevantes com inferência de modelo de linguagem e produzir resultados semânticos precisos e coerentes.

      **Principais Características:**
      - Análise Profunda Multimodal: Suporta a extração de conteúdo estruturado de vários formatos, como PDF, Word, TXT, imagens, incluindo reconhecimento de texto de imagem OCR.
      - Indexação Vetorial Semântica e Recuperação Inteligente: Alcança correspondência semântica e recuperação de alta precisão através de uma combinação de recuperação vetorial, recuperação por palavra-chave e até mesmo recuperação aprimorada por grafo de conhecimento.
      - Geração de Q&A em Ciclo Fechado RAG: Gera respostas de conteúdo precisas e coerentes, aproveitando a inferência de grandes modelos de linguagem e a fusão de fragmentos de recuperação.
      - Capacidades Aprimoradas do Modo Agente: Suporta o modo ReACT Agent, que pode chamar ferramentas incorporadas, pesquisa web externa, etc., durante iterações de várias rondas, para melhorar as capacidades de processamento de tarefas complexas.
      - Gestão de Bases de Conhecimento Multi-tipo: Pode criar bases de conhecimento do tipo FAQ e documento, e gerir de forma flexível tags, importação em lote de ficheiros ou URLs.
      - Estratégia de Diálogo e UI Configuráveis: Fornece uma interface Web intuitiva e uma API REST, permitindo o ajuste online de modelos, limiares de recuperação e Prompt para controlar o comportamento do diálogo.

      **Saiba Mais:**
      - [Site Oficial](https://weknora.weixin.qq.com)
      - [Link GitHub](https://github.com/Tencent/WeKnora)
    ru_RU: |
      WeKnora — это фреймворк для глубокого понимания документов и семантического поиска, основанный на Больших языковых моделях (LLM), специально разработанный для сценариев с документами, имеющими сложные структуры и гетерогенное содержимое. Он использует модульную архитектуру, интегрируя ключевые технологии, такие как мультимодальная предварительная обработка, семантическое векторное индексирование, интеллектуальный поиск и вывод больших моделей. Основанный на парадигме Генерации с дополненным поиском (RAG), он обеспечивает контекстно-зависимые, высококачественные возможности вопросов и ответов. WeKnora может глубоко понимать содержимое документов в различных форматах, комбинировать соответствующие фрагменты документов с выводом языковой модели и выдавать точные, связные семантические результаты.

      **Ключевые особенности:**
      - Мультимодальный глубокий парсинг: Поддерживает извлечение структурированного содержимого из различных форматов, таких как PDF, Word, TXT, изображения, включая распознавание текста на изображениях с помощью OCR.
      - Семантическое векторное индексирование и интеллектуальный поиск: Достигает высокоточной семантической сопоставимости и извлечения за счет комбинации векторного поиска, поиска по ключевым словам и даже поиска, улучшенного графом знаний.
      - Генерация вопросов и ответов с замкнутым циклом RAG: Генерирует точные и связные ответы на основе содержимого, используя вывод больших языковых моделей и слияние фрагментов поиска.
      - Расширенные возможности режима агента: Поддерживает режим ReACT Agent, который может вызывать встроенные инструменты, внешний веб-поиск и т. д. во время многораундовых итераций для улучшения возможностей обработки сложных задач.
      - Управление базами знаний различных типов: Может создавать базы знаний типа FAQ и документов, а также гибко управлять тегами, пакетным импортом файлов или URL-адресов.
      - Настраиваемая стратегия диалога и пользовательский интерфейс: Предоставляет интуитивно понятный веб-интерфейс и REST API, позволяя онлайн-настройку моделей, порогов поиска и Prompt для управления поведением диалога.

      **Узнать больше:**
      - [Официальный сайт](https://weknora.weixin.qq.com)
      - [Ссылка на GitHub](https://github.com/Tencent/WeKnora)
    sv_SE: |
      WeKnora är ett ramverk för djup dokumentförståelse och semantisk hämtning baserat på Stora språkmodeller (LLM), specifikt utformat för dokumentscenarier med komplexa strukturer och heterogent innehåll. Det antar en modulär arkitektur som integrerar nyckelteknologier som multimodal förbehandling, semantisk vektorindexering, intelligent hämtning och inferens av stora modeller. Baserat på Retrieval-Augmented Generation (RAG)-paradigmet uppnår det kontextmedvetna, högkvalitativa Q&A-funktioner. WeKnora kan djupt förstå dokumentinnehåll i olika format, kombinera relevanta dokumentfragment med språkmodellinferens och producera exakta, sammanhängande semantiska resultat.

      **Nyckelfunktioner:**
      - Multimodal djupanalys: Stöder extrahering av strukturerat innehåll från olika format som PDF, Word, TXT, bilder, inklusive OCR-bildtextigenkänning.
      - Semantisk vektorindexering och intelligent hämtning: Uppnår högprecisions semantisk matchning och återkallning genom en kombination av vektorhämtning, nyckelordshämtning och till och med kunskapsgraf-förstärkt hämtning.
      - RAG sluten-loop Q&A-generering: Genererar exakta och sammanhängande innehållssvar genom att utnyttja inferens av stora språkmodeller och fusion av hämtningsfragment.
      - Agentläge förbättrade funktioner: Stöder ReACT Agent-läge, som kan anropa inbyggda verktyg, extern webbsökning, etc., under flergångsiterationer, för att förbättra komplexa uppgiftshanteringsförmågor.
      - Hantering av kunskapsbaser av flera typer: Kan skapa FAQ- och dokumenttyp-kunskapsbaser, och flexibelt hantera taggar, massimport av filer eller URL:er.
      - Konfigurerbar dialogstrategi och UI: Tillhandahåller ett intuitivt webbgränssnitt och REST API, vilket möjliggör onlinejustering av modeller, hämtningströsklar och Prompt för att kontrollera dialogbeteende.

      **Läs mer:**
      - [Officiell webbplats](https://weknora.weixin.qq.com)
      - [GitHub-länk](https://github.com/Tencent/WeKnora)
    tr_TR: |
      WeKnora, Büyük Dil Modelleri (LLM) tabanlı, özellikle karmaşık yapılar ve heterojen içeriğe sahip belge senaryoları için tasarlanmış derin belge anlama ve anlamsal geri çağırma çerçevesidir. Çok modlu ön işleme, anlamsal vektör indeksleme, akıllı geri çağırma ve büyük model çıkarımı gibi temel teknolojileri entegre eden modüler bir mimari benimser. Geri Çağırma Destekli Üretim (RAG) paradigm dayanarak, bağlama duyarlı, yüksek kaliteli Soru-Cevap yetenekleri elde eder. WeKnora, farklı formatlardaki belge içeriğini derinlemesine anlayabilir, ilgili belge parçalarını dil modeli çıkarımıyla birleştirebilir ve doğru, tutarlı anlamsal sonuçlar üretebilir.

      **Temel Özellikler:**
      - Çok Modlu Derin Ayrıştırma: PDF, Word, TXT, görüntüler gibi çeşitli formatlardan yapılandırılmış içerik çıkarımını destekler, buna OCR görüntü metin tanıma da dahildir.
      - Anlamsal Vektör İndeksleme ve Akıllı Geri Çağırma: Vektör geri çağırma, anahtar kelime geri çağırma ve hatta bilgi grafiği destekli geri çağırma kombinasyonu aracılığıyla yüksek hassasiyetli anlamsal eşleştirme ve geri çağırma sağlar.
      - RAG Kapalı Döngü Soru-Cevap Üretimi: Büyük dil modeli çıkarımı ve geri çağırma parçası füzyonunu kullanarak doğru ve tutarlı içerik yanıtları üretir.
      - Ajan Modu Gelişmiş Yetenekleri: Çok turlu yinelemeler sırasında yerleşik araçları, harici web aramasını vb. çağırabilen ReACT Ajan modunu destekleyerek karmaşık görev işleme yeteneklerini geliştirir.
      - Çok Türlü Bilgi Tabanı Yönetimi: SSS ve belge tipi bilgi tabanları oluşturabilir ve etiketleri, toplu dosya veya URL içe aktarımlarını esnek bir şekilde yönetebilir.
      - Yapılandırılabilir Diyalog Stratejisi ve Kullanıcı Arayüzü: Sezgisel bir Web arayüzü ve REST API sağlar, modellerin, geri çağırma eşiklerinin ve Prompt'un çevrimiçi ayarlanmasına olanak tanıyarak diyalog davranışını kontrol eder.

      **Daha Fazla Bilgi Edinin:**
      - [Resmi Web Sitesi](https://weknora.weixin.qq.com)
      - [GitHub Bağlantısı](https://github.com/Tencent/WeKnora)
    zh_CN: |
      WeKnora 是一个基于大型语言模型（LLM）的深度文档理解和语义检索框架，专门为具有复杂结构和异构内容的文档场景设计。它采用模块化架构，集成了多模态预处理、语义向量索引、智能检索和大模型推理等关键技术。基于检索增强生成（RAG）范式，它实现了上下文感知、高质量的问答能力。WeKnora 能够深入理解不同格式的文档内容，将相关文档片段与语言模型推理相结合，输出准确、连贯的语义结果。

      **主要特点：**
      - 多模态深度解析：支持从 PDF、Word、TXT、图像等多种格式中提取结构化内容，包括 OCR 图像文本识别。
      - 语义向量索引与智能检索：通过向量检索、关键词检索，甚至知识图谱增强检索相结合，实现高精度的语义匹配和召回。
      - RAG 闭环问答生成：利用大型语言模型推理和检索片段融合，生成准确、连贯的内容答案。
      - Agent 模式增强能力：支持 ReACT Agent 模式，可在多轮迭代中调用内置工具、外部网页搜索等，提升复杂任务处理能力。
      - 多类型知识库管理：可创建 FAQ 和文档型知识库，灵活管理标签、批量导入文件或 URL。
      - 可配置对话策略与 UI：提供直观的 Web 界面和 REST API，支持在线调整模型、检索阈值和 Prompt 以控制对话行为。

      **了解更多：**
      - [官方网站](https://weknora.weixin.qq.com)
      - [GitHub 链接](https://github.com/Tencent/WeKnora)
  category: AI
  author: tencent
  developer: Tencent
  icon: https://cdn.jsdelivr.net/gh/IceWhaleTech/CasaOS-AppStore@main/Apps/WeKnora/icon.png
  thumbnail: https://cdn.jsdelivr.net/gh/IceWhaleTech/CasaOS-AppStore@main/Apps/WeKnora/thumbnail.png
  screenshot_link:
    - https://cdn.jsdelivr.net/gh/IceWhaleTech/CasaOS-AppStore@main/Apps/WeKnora/screenshot-1.png
    - https://cdn.jsdelivr.net/gh/IceWhaleTech/CasaOS-AppStore@main/Apps/WeKnora/screenshot-2.png
    - https://cdn.jsdelivr.net/gh/IceWhaleTech/CasaOS-AppStore@main/Apps/WeKnora/screenshot-3.png
  main: weknora
  port_map: "1080"
  architectures:
    - amd64
    - arm64
  index: /
  scheme: http