# yaml-language-server: $schema=https://schema.zeabur.app/template.json
apiVersion: zeabur.com/v1
kind: Template
metadata:
    name: Weaviate
spec:
    description: Weaviate is a vector database.
    coverImage: https://weaviate.io/img/site/weaviate-logo-horizontal-light-1.svg
    icon: https://avatars.githubusercontent.com/u/37794290
    variables:
        - key: PUBLIC_DOMAIN
          type: DOMAIN
          name: Domain
          description: Domain of your weaviate.
    tags:
        - LLM
        - vectorDB
        - AI
    readme: |
        # Weaviate

        Weaviate is an open-source vector database designed to store, manage, and query vector data, specifically crafted for AI-driven search and recommendation systems. It is easy to integrate, scalable, and capable of handling high-dimensional vectors, high-performance similarity searches, as well as hybrid queries combining traditional structured data.

        Weaviate not only stores vectors but also supports real-time vector creation, integration with machine learning models, and visual data analysis. Whether you’re building recommendation systems, search engines, or AI-powered applications, Weaviate provides robust support.

        ## Key Features
        - `Vector Search`: Supports fast similarity queries (nearest neighbor search).
        - `Multimodal Data Storage`: Combines vector and structured data for hybrid queries.
        - `Contextual Awareness`: Stores vector representations for text, images, and other multimodal data types.
        - `Scalable and High-Performance`: Handles billions of data vectors with strong horizontal scaling capabilities.
        - `Machine Learning Integration`: Supports external ML models such as OpenAI, Hugging Face, Cohere, etc., for dynamic vector generation.
        - `Schema-first`: Allows defining clear schema structures to organize and optimize data storage and querying.
        - `API Support`: Access and manipulate data easily through GraphQL and RESTful APIs.
        ## Add Users and API Keys
        - Add more `apiKeys` in `AUTHENTICATION_APIKEY_ALLOWED_KEYS`
        - Add more `users` after `AUTHENTICATION_APIKEY_USERS` separated by commas
        ## Example code
          ```python
                import weaviate
                client = weaviate.connect_to_local(
                    host="<host>",
                    port=<http_port>,
                    grpc_port=<grpc_port>,
                    auth_credentials=Auth.api_key("<password>"),
                )
          ```
    services:
        - name: weaviate
          icon: https://avatars.githubusercontent.com/u/37794290
          template: PREBUILT
          spec:
            source:
                image: semitechnologies/weaviate:latest
            ports:
                - id: http
                  port: 8080
                  type: TCP
                - id: grpc
                  port: 50051
                  type: TCP
            volumes:
                - id: data
                  dir: /var/lib/weaviate
            instructions:
                - title: Weaviate Keys
                  content: ${AUTHENTICATION_APIKEY_ALLOWED_KEYS}
                - title: Weaviate Usernames
                  content: ${AUTHENTICATION_APIKEY_USERS}
            env:
                AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED:
                    default: "false"
                AUTHENTICATION_APIKEY_ALLOWED_KEYS:
                    default: ${PASSWORD}
                AUTHENTICATION_APIKEY_ENABLED:
                    default: "true"
                AUTHENTICATION_APIKEY_USERS:
                    default: zeabur
                AUTHORIZATION_ADMINLIST_ENABLED:
                    default: "true"
                AUTHORIZATION_ADMINLIST_USERS:
                    default: zeabur
                CLUSTER_HOSTNAME:
                    default: node1
                DEFAULT_VECTORIZER_MODULE:
                    default: none
                ENABLE_MODULES:
                    default: text2vec-cohere,text2vec-huggingface,text2vec-palm,text2vec-openai,generative-openai,generative-cohere,generative-palm,ref2vec-centroid,reranker-cohere,qna-openai
                PERSISTENCE_DATA_PATH:
                    default: /var/lib/weaviate
                QUERY_DEFAULTS_LIMIT:
                    default: "25"
          domainKey: PUBLIC_DOMAIN
localization:
    zh-CN:
        description: Weaviate 是一个知名的向量数据库。
        readme: |-
            # Weaviate
            Weaviate 是一个开源向量数据库，可以存储、管理和查询数据向量，专为 AI 驱动的搜索和推荐系统设计。它易于集成，支持扩展，能够处理高维向量、高性能相似度搜索，以及结合传统结构化数据的复合查询。

            Weaviate 不仅可以存储向量，还支持实时创建向量、与机器学习模型的集成，以及可视化数据分析。无论是构建推荐系统、搜索引擎，还是 AI 驱动的应用程序，Weaviate 都能提供强大的支持。

            ## 功能亮点
            - 向量搜索：支持快速的相似度查询（最近邻搜索）。
            - 存储多模态数据：结合向量和结构化数据进行查询。
            - 内置上下文感知模块：支持文本、图像或其他多模态数据类型的向量表示存储。
            - 可扩展性与高性能：能够处理数十亿条数据向量，具有强大的水平扩展能力。
            - 与机器学习集成：支持外部机器学习模型，如 OpenAI、Hugging Face、Cohere 等，实现动态向量生成。
            - chema-first：允许定义清晰的数据模式，帮助组织和优化数据存储及查询。
            - API 支持：通过 GraphQL 和 RESTful 接口轻松访问和操作数据。
            ## 添加用户和apikeys
              - 在`AUTHENTICATION_APIKEY_ALLOWED_KEYS`添加更多的`apiKeys`
              - 在`AUTHENTICATION_APIKEY_USERS`后添加更多的`users`用逗号隔开
            ## 示例代码
            ```python
                  import weaviate
                  client = weaviate.connect_to_local(
                      host="<host>",
                      port=<http_port>,
                      grpc_port=<grpc_port>,
                      auth_credentials=Auth.api_key("<password>"),
                  )
            ```
    zh-TW:
        description: Weaviate 是一個知名的向量數據庫。
        readme: |-
            # Weaviate
            Weaviate 是一個開源向量數據庫，可以存儲、管理和查詢數據向量，專爲 AI 驅動的搜索和推薦系統設計。它易於集成，支持擴展，能夠處理高維向量、高性能相似度搜索，以及結合傳統結構化數據的復合查詢。

            Weaviate 不僅可以存儲向量，還支持實時創建向量、與機器學習模型的集成，以及可視化數據分析。無論是構建推薦系統、搜索引擎，還是 AI 驅動的應用程序，Weaviate 都能提供強大的支持。

            ## 功能亮點
            - 向量搜索：支持快速的相似度查詢（最近鄰搜索）。
            - 存儲多模態數據：結合向量和結構化數據進行查詢。
            - 內置上下文感知模塊：支持文本、圖像或其他多模態數據類型的向量表示存儲。
            - 可擴展性與高性能：能夠處理數十億條數據向量，具有強大的水平擴展能力。
            - 與機器學習集成：支持外部機器學習模型，如 OpenAI、Hugging Face、Cohere 等，實現動態向量生成。
            - chema-first：允許定義清晰的數據模式，幫助組織和優化數據存儲及查詢。
            - API 支持：通過 GraphQL 和 RESTful 接口輕松訪問和操作數據。

            ## 添加用戶和apikeys
              - 在`AUTHENTICATION_APIKEY_ALLOWED_KEYS`添加更多的`apiKeys`
              - 在`AUTHENTICATION_APIKEY_USERS`後添加更多的`users`用逗號隔開
            ## 示例代碼
            ```python
            import weaviate
            client = weaviate.connect_to_local(
            host="<host>",
            port=<http_port>,
            grpc_port=<grpc_port>,
            auth_credentials=Auth.api_key("<password>"),
            )
