# yaml-language-server: $schema=https://schema.zeabur.app/template.json
apiVersion: zeabur.com/v1
kind: Template
metadata:
    name: PostgreSQL with AI Query (dev version)
spec:
    description: PostgreSQL with pg_ai_query extension for natural language SQL generation powered by OpenAI and Anthropic AI models
    coverImage: https://raw.githubusercontent.com/canyugs/zeabur-template/refs/heads/main/postgresql-ai-query/postgresql-ai-query.webp
    icon: https://raw.githubusercontent.com/zeabur/service-icons/main/marketplace/postgresql.svg
    variables:
        - key: OPENAI_API_KEY
          type: STRING
          name: OpenAI API Key (Optional)
          description: Your OpenAI API key from https://platform.openai.com/api-keys
        - key: ANTHROPIC_API_KEY
          type: STRING
          name: Anthropic API Key (Optional)
          description: Your Anthropic API key from https://console.anthropic.com/settings/keys
    readme: |-
        # PostgreSQL with AI Query Extension

        A powerful PostgreSQL database with built-in AI capabilities for generating SQL queries from natural language.

        ## Features

        - **Natural Language to SQL**: Convert plain English to SQL queries
        - **Multiple AI Providers**: Support for OpenAI (GPT-4o, GPT-4) and Anthropic (Claude)
        - **Automatic Schema Discovery**: AI understands your database structure
        - **Query Performance Analysis**: Get AI-powered optimization suggestions
        - **Built on PostgreSQL 17**: Latest stable PostgreSQL version

        ## Quick Start

        ### 1. Configure AI Provider

        Edit the config file `~/.pg_ai.config` to set at least one API key:
        - **OpenAI**: Get your key from https://platform.openai.com/api-keys
        - **Anthropic**: Get your key from https://console.anthropic.com/settings/keys

        ### 2. Connect to Database

        Use the connection string from the service instructions.

        ### 3. Start Using AI Queries

        ```sql
        -- Generate queries from natural language
        SELECT generate_query('show all customers who registered in the last 30 days');

        -- Explore your database structure
        SELECT get_database_tables();
        SELECT get_table_details('users');

        -- Analyze query performance
        SELECT explain_query('SELECT * FROM users WHERE created_at > NOW() - INTERVAL ''7 days''');
        ```

        ## Example Use Cases

        ```sql
        -- Business analytics
        SELECT generate_query('monthly sales trend for the last year by category');

        -- Customer insights
        SELECT generate_query('top 10 customers by total purchase amount');

        -- Data quality
        SELECT generate_query('find duplicate email addresses in the users table');

        -- Complex joins
        SELECT generate_query('users who have placed orders but never left a review');
        ```

        ## Documentation

        - Configuration Guide: https://benodiwal.github.io/pg_ai_query/configuration.html
        - Official Docs: https://benodiwal.github.io/pg_ai_query/
        - GitHub: https://github.com/benodiwal/pg_ai_query

        ## Notes

        - The extension requires an active internet connection to call AI APIs
        - Each query generation consumes API credits
        - Keep your API keys secure and monitor usage
    services:
        - name: postgresql-ai-query
          icon: https://raw.githubusercontent.com/zeabur/service-icons/main/marketplace/postgresql.svg
          template: PREBUILT_V2
          spec:
            source:
                image: ghcr.io/canyugs/postgresql-ai-query:17-alpine
            ports:
                - id: database
                  port: 5432
                  type: TCP
            volumes:
                - id: data
                  dir: /var/lib/postgresql/data
                - id: config
                  dir: /var/lib/postgresql/config
            instructions:
                - title: Connection String
                  content: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${PORT_FORWARDED_HOSTNAME}:${DATABASE_PORT_FORWARDED_PORT}/${POSTGRES_DB}
                - title: Connect Command
                  content: psql "postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${PORT_FORWARDED_HOSTNAME}:${DATABASE_PORT_FORWARDED_PORT}/${POSTGRES_DB}"
                - title: Username
                  content: ${POSTGRES_USER}
                - title: Password
                  content: ${POSTGRES_PASSWORD}
                - title: Database
                  content: ${POSTGRES_DB}
                - title: Test AI Query
                  content: SELECT generate_query('show all tables');
                - title: List Tables
                  content: SELECT get_database_tables();
                - title: Table Details
                  content: SELECT get_table_details('your_table_name');
            env:
                POSTGRES_CONNECTION_STRING:
                    default: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${PORT_FORWARDED_HOSTNAME}:${DATABASE_PORT_FORWARDED_PORT}/${POSTGRES_DB}
                    expose: true
                POSTGRES_DB:
                    default: mydb
                    expose: true
                POSTGRES_PASSWORD:
                    default: ${PASSWORD}
                    expose: true
                POSTGRES_USER:
                    default: postgres
                    expose: true
            configs:
                - path: /var/lib/postgresql/.pg_ai.config
                  template: |
                    [general]
                    log_level = "INFO"
                    enable_logging = true
                    request_timeout_ms = 30000
                    max_retries = 3

                    [query]
                    enforce_limit = true
                    default_limit = 1000

                    [response]
                    show_explanation = true
                    show_warnings = true
                    show_suggested_visualization = false
                    use_formatted_response = false

                    [openai]
                    api_key = "${OPENAI_API_KEY}"
                    default_model = "gpt-4o"

                    [anthropic]
                    api_key = "${ANTHROPIC_API_KEY}"
                    default_model = "claude-3-5-sonnet-20241022"
                  permission: null
                  envsubst: true
            healthCheck:
                type: TCP
                port: database
localization:
    es-ES:
        description: PostgreSQL con extensión pg_ai_query para generación de consultas SQL en lenguaje natural, impulsado por modelos de IA de OpenAI y Anthropic
        readme: "# Extensión de Consultas AI para PostgreSQL\n\nUna potente base de datos PostgreSQL 17 con capacidades de IA integradas para convertir lenguaje natural en consultas SQL.\n\n## \U0001F680 Características Principales\n\n- **Lenguaje Natural a SQL**: Convierte descripciones en español o inglés en consultas PostgreSQL válidas\n- **Múltiples Proveedores de IA**: Soporte para modelos OpenAI (GPT-4o, GPT-4) y Anthropic (Claude)\n- **Descubrimiento Automático de Esquema**: La IA analiza la estructura de tu base de datos, entendiendo tablas y relaciones\n- **Análisis de Rendimiento de Consultas**: Ejecuta EXPLAIN ANALYZE y obtén sugerencias de optimización impulsadas por IA\n- **Seguridad Primero**: Protecciones integradas con límites de filas y validación de consultas\n\n## \U0001F4D6 Inicio Rápido\n\n1. **Configurar Clave API**: Edita el archivo `~/.pg_ai.config` para configurar la clave API\n2. **Conectar**: Usa la cadena de conexión proporcionada\n3. **Consultar**: `SELECT generate_query('tu consulta en lenguaje natural');`\n\n## \U0001F4A1 Ejemplos de Consultas\n\n```sql\n-- Análisis de Negocios\nSELECT generate_query('tendencia de ventas mensuales del último año');\n\n-- Exploración de Datos\nSELECT get_database_tables();\nSELECT get_table_details('orders');\n\n-- Análisis de Rendimiento\nSELECT explain_query('SELECT * FROM users WHERE active = true');\n```\n\n¡Perfecto para analistas de datos, desarrolladores y cualquiera que quiera consultar bases de datos usando lenguaje natural!\n\n- Guía de Configuración: https://benodiwal.github.io/pg_ai_query/configuration.html\n- Documentación: https://benodiwal.github.io/pg_ai_query/\n- Código Fuente: https://github.com/benodiwal/pg_ai_query\n"
    id-ID:
        description: PostgreSQL dengan ekstensi pg_ai_query untuk pembuatan kueri SQL menggunakan bahasa alami, didukung oleh model AI OpenAI dan Anthropic
        readme: "# Ekstensi Kueri AI untuk PostgreSQL\n\nDatabase PostgreSQL 17 yang powerful dengan kemampuan AI bawaan untuk mengubah bahasa alami menjadi kueri SQL.\n\n## \U0001F680 Fitur Utama\n\n- **Bahasa Alami ke SQL**: Ubah deskripsi dalam bahasa Indonesia atau Inggris menjadi kueri PostgreSQL yang valid\n- **Multi Penyedia AI**: Dukungan untuk model OpenAI (GPT-4o, GPT-4) dan Anthropic (Claude)\n- **Penemuan Skema Otomatis**: AI menganalisis struktur database Anda, memahami tabel dan relasi\n- **Analisis Performa Kueri**: Jalankan EXPLAIN ANALYZE dan dapatkan saran optimasi berbasis AI\n- **Keamanan Utama**: Perlindungan bawaan dengan batas baris dan validasi kueri\n\n## \U0001F4D6 Mulai Cepat\n\n1. **Atur Kunci API**: Edit file `~/.pg_ai.config` untuk mengatur kunci API\n2. **Hubungkan**: Gunakan string koneksi yang disediakan\n3. **Kueri**: `SELECT generate_query('kueri bahasa alami Anda');`\n\n## \U0001F4A1 Contoh Kueri\n\n```sql\n-- Analisis Bisnis\nSELECT generate_query('tren penjualan bulanan tahun lalu');\n\n-- Eksplorasi Data\nSELECT get_database_tables();\nSELECT get_table_details('orders');\n\n-- Analisis Performa\nSELECT explain_query('SELECT * FROM users WHERE active = true');\n```\n\nSempurna untuk analis data, developer, dan siapa saja yang ingin melakukan kueri database menggunakan bahasa alami!\n\n- Panduan Konfigurasi: https://benodiwal.github.io/pg_ai_query/configuration.html\n- Dokumentasi: https://benodiwal.github.io/pg_ai_query/\n- Kode Sumber: https://github.com/benodiwal/pg_ai_query\n"
    ja-JP:
        description: OpenAI と Anthropic AI モデルを使用した自然言語による SQL クエリ生成機能を持つ pg_ai_query 拡張機能内蔵の PostgreSQL
        readme: "# PostgreSQL AI クエリ拡張機能\n\n自然言語を SQL クエリに変換する AI 機能を内蔵した強力な PostgreSQL 17 データベース。\n\n## \U0001F680 主な機能\n\n- **自然言語から SQL へ**: 日本語や英語の説明を有効な PostgreSQL クエリに変換\n- **複数の AI プロバイダー**: OpenAI (GPT-4o, GPT-4) と Anthropic (Claude) モデルをサポート\n- **自動スキーマ検出**: AI がデータベース構造を分析し、テーブルとリレーションを理解\n- **クエリパフォーマンス分析**: EXPLAIN ANALYZE を実行し、AI による最適化提案を取得\n- **セキュリティ優先**: 行制限とクエリ検証による保護機能を内蔵\n\n## \U0001F4D6 クイックスタート\n\n1. **API キーを設定**: 設定ファイル `~/.pg_ai.config` を編集して API キーを設定\n2. **接続**: 提供された接続文字列を使用\n3. **クエリ**: `SELECT generate_query('自然言語のクエリ');`\n\n## \U0001F4A1 クエリ例\n\n```sql\n-- ビジネス分析\nSELECT generate_query('過去1年間の月次売上トレンド');\n\n-- データ探索\nSELECT get_database_tables();\nSELECT get_table_details('orders');\n\n-- パフォーマンス分析\nSELECT explain_query('SELECT * FROM users WHERE active = true');\n```\n\nデータアナリスト、開発者、自然言語でデータベースにクエリを実行したい方に最適です!\n\n- 設定ガイド: https://benodiwal.github.io/pg_ai_query/configuration.html\n- ドキュメント: https://benodiwal.github.io/pg_ai_query/\n- ソースコード: https://github.com/benodiwal/pg_ai_query\n"
    zh-CN:
        description: 内置 pg_ai_query 扩展的 PostgreSQL 数据库,支持使用自然语言生成 SQL 查询,由 OpenAI 和 Anthropic AI 模型驱动
        readme: "# PostgreSQL AI 查询扩展\n\n强大的 PostgreSQL 17 数据库,内置 AI 功能,可将自然语言转换为 SQL 查询。\n\n## \U0001F680 主要功能\n\n- **自然语言转 SQL**: 将中文或英文描述转换为有效的 PostgreSQL 查询\n- **多 AI 提供商**: 支持 OpenAI (GPT-4o, GPT-4) 和 Anthropic (Claude) 模型\n- **自动模式发现**: AI 分析你的数据库结构,理解表和关系\n- **查询性能分析**: 运行 EXPLAIN ANALYZE 并获得 AI 驱动的优化建议\n- **安全优先**: 内置行限制和查询验证保护\n\n## \U0001F4D6 快速开始\n\n1. **设置 API 密钥**: 编辑配置文件 `~/.pg_ai.config` 设置 API 密钥\n2. **连接**: 使用提供的连接字符串\n3. **查询**: `SELECT generate_query('你的自然语言查询');`\n\n## \U0001F4A1 示例查询\n\n```sql\n-- 业务分析\nSELECT generate_query('过去一年的月度销售趋势');\n\n-- 数据探索\nSELECT get_database_tables();\nSELECT get_table_details('orders');\n\n-- 性能分析\nSELECT explain_query('SELECT * FROM users WHERE active = true');\n```\n\n非常适合数据分析师、开发者,以及任何想用自然语言查询数据库的人!\n\n- 配置指南: https://benodiwal.github.io/pg_ai_query/configuration.html\n- 文档: https://benodiwal.github.io/pg_ai_query/\n- 源码: https://github.com/benodiwal/pg_ai_query\n"
    zh-TW:
        description: 內建 pg_ai_query 擴展的 PostgreSQL 資料庫,支援使用自然語言生成 SQL 查詢,由 OpenAI 和 Anthropic AI 模型驅動
        readme: "# PostgreSQL AI 查詢擴展\n\n強大的 PostgreSQL 17 資料庫,內建 AI 功能,可將自然語言轉換為 SQL 查詢。\n\n## \U0001F680 主要功能\n\n- **自然語言轉 SQL**: 將中文或英文描述轉換為有效的 PostgreSQL 查詢\n- **多 AI 提供商**: 支援 OpenAI (GPT-4o, GPT-4) 和 Anthropic (Claude) 模型\n- **自動架構探索**: AI 分析你的資料庫結構,理解表格和關聯\n- **查詢效能分析**: 執行 EXPLAIN ANALYZE 並獲得 AI 驅動的優化建議\n- **安全優先**: 內建資料列限制和查詢驗證保護\n\n## \U0001F4D6 快速開始\n\n1. **設定 API 金鑰**: 編輯設定檔 `~/.pg_ai.config` 設定 API 金鑰\n2. **連線**: 使用提供的連線字串\n3. **查詢**: `SELECT generate_query('你的自然語言查詢');`\n\n## \U0001F4A1 範例查詢\n\n```sql\n-- 商業分析\nSELECT generate_query('過去一年的月度銷售趨勢');\n\n-- 資料探索\nSELECT get_database_tables();\nSELECT get_table_details('orders');\n\n-- 效能分析\nSELECT explain_query('SELECT * FROM users WHERE active = true');\n```\n\n非常適合資料分析師、開發者,以及任何想用自然語言查詢資料庫的人!\n\n- 設定指南: https://benodiwal.github.io/pg_ai_query/configuration.html\n- 文件: https://benodiwal.github.io/pg_ai_query/\n- 原始碼: https://github.com/benodiwal/pg_ai_query\n"
