# yaml-language-server: $schema=https://schema.zeabur.app/template.json
apiVersion: zeabur.com/v1
kind: Template
metadata:
    name: Augment2ApiNext
spec:
    description: Augment2Api 是一个用于连接 Augment API 的中间层服务，提供 OpenAI 兼容的接口，支持 Claude 3.7 模型的调用。
    variables:
        - key: GENERATED_DOMAIN_PREFIX
          type: DOMAIN
          name: 域名
          description: 你的 Augment2Api 服务域名
    readme: "## 使用须知\n\n- 使用本项目可能导致您的账号被标记、风控或封禁，请自行承担风险！\n- 默认根据传入模型名称确定使用使用模式，AGENT模式下屏蔽所有工具调用，使用模型原生能力回答，否则对话会被工具调用截断\n- 默认添加并发控制，单Token3秒内最多请求 1次,默认添加Block Token冷却规则\n- Augment的Agent模式很强，推荐你在编辑器中使用官方插件，体验不输Cursor\n\n## 问题反馈\n\n[\U0001F41E Telegram 交流群](https://t.me/+AfGumJADbLYzYzE1)\n\n## 功能特点\n\n- 提供 OpenAI 兼容的 API 接口\n- 支持 Claude 3.7 模型(Maybe)\n- 支持流式/非流式输出 (Stream/Non-Stream)\n- 支持简洁的多Token管理界面管理\n- 支持 Redis 存储 Token\n- 支持批量检测Token和租户地址并更新\n- 支持接口批量添加Token\n\n## 支持模型\n\n```\n传入模型名称以 -chat 结尾,使用CHAT模式回复\n传入模型名称以 -agent 结尾,使用AGENT模式回复\n其他模型名称默认使用CHAT模式\n```\n\n## 快速开始\n\n1. 部署这个模版\n\n2. 获取Token\n\n访问你部署模版时输入的域名，进入管理页面登录页,输入访问密码进入管理面板，点击添加TOENN菜单 image\n\n1. 点击获取授权链接\n2. 复制授权链接到浏览器中打开\n3. 使用邮箱进行登录（域名邮箱也可）\n4. 复制augment code到授权响应输入框中，点击获取token，TOKEN列表中正常出现数据\n5. 开始对话测试\n\n提示：\n\n如果对话报错503，请执行一次批量检测更新租户地址再进行对话测试（租户地址错误）\n如果对话报错401，请执行一次批量检测禁用无效token再进行对话测试 （账号被封禁）\n\n## API 使用\n\n获取模型\n\n```\ncurl -X GET https://<你绑定的域名>/v1/models\n```\n\n聊天接口\n\n```\ncurl -X POST https://<你绑定的域名>/v1/chat/completions \\\n-H \"Content-Type: application/json\" \\\n-d '{\n\"model\": \"claude-3.7\",\n\"messages\": [\n{\"role\": \"user\", \"content\": \"你好，请介绍一下自己\"}\n]\n}'\n```\n\n## 管理界面\n\n访问 https://<你绑定的域名>/ 可以打开管理界面登录页面，登录之后即可交互式获取、管理Token。\n\n## 批量添加Token\n\n```\n# 批量添加Token-未设置AUTH_TOKEN\ncurl -X POST https://<你绑定的域名>/api/add/tokens \\\n-H \"Content-Type: application/json\" \\\n-d '[\n    {\n        \"token\": \"token1\",\n        \"tenantUrl\": \"https://tenant1.com\"\n    },\n    {\n        \"token\": \"token2\",\n        \"tenantUrl\": \"https://tenant2.com\"\n    }\n]'\n# 批量添加Token-设置AUTH_TOKEN\ncurl -X POST https://<你绑定的域名>/api/add/tokens \\\n-H \"Content-Type: application/json\" \\\n-H \"Authorization: Bearer your-auth-token\" \\\n-d '[\n    {\n        \"token\": \"token1\",\n        \"tenantUrl\": \"https://tenant1.com\"\n    },\n    {\n        \"token\": \"token2\",\n        \"tenantUrl\": \"https://tenant2.com\"\n    }\n]'    \n```"
    services:
        - name: redis
          icon: https://raw.githubusercontent.com/zeabur/service-icons/main/marketplace/redis.svg
          template: PREBUILT_V2
          spec:
            id: redis
            source:
                image: redis/redis-stack-server:latest
            ports:
                - id: database
                  port: 6379
                  type: TCP
            volumes:
                - id: data
                  dir: /data
            instructions:
                - title: Command to connect to your Redis
                  content: redis-cli -h ${PORT_FORWARDED_HOSTNAME} -p ${DATABASE_PORT_FORWARDED_PORT} -a ${REDIS_PASSWORD}
                - title: Redis Connection String
                  content: redis://:${REDIS_PASSWORD}@${PORT_FORWARDED_HOSTNAME}:${DATABASE_PORT_FORWARDED_PORT}
                - title: Redis password
                  content: ${REDIS_PASSWORD}
                - title: Redis host
                  content: ${PORT_FORWARDED_HOSTNAME}
                - title: Redis port
                  content: ${DATABASE_PORT_FORWARDED_PORT}
            env:
                CONFFILE:
                    default: /etc/redis-stack.conf
                    expose: false
                REDIS_ARGS:
                    default: --requirepass ${REDIS_PASSWORD}
                    expose: false
                REDIS_CONNECTION_STRING:
                    default: redis://:${REDIS_PASSWORD}@${REDIS_HOST}:${REDIS_PORT}
                    expose: true
                REDIS_HOST:
                    default: ${CONTAINER_HOSTNAME}
                    expose: true
                REDIS_PASSWORD:
                    default: ${PASSWORD}
                    expose: true
                REDIS_PORT:
                    default: ${DATABASE_PORT}
                    expose: true
                REDIS_URI:
                    default: ${REDIS_CONNECTION_STRING}
                    expose: true
            configs:
                - path: /etc/redis-stack.conf
                  template: |
                    port 6379
                    daemonize no
                  permission: null
                  envsubst: null
        - name: augment2api
          icon: https://cdn.zeabur.com/prebuilt.svg
          template: PREBUILT_V2
          spec:
            id: augment2api
            source:
                image: linqiu1199/augment2apinext
            ports:
                - id: http
                  port: 27080
                  type: HTTP
            env:
                ACCESS_PWD:
                    default: your-access-password
                    expose: false
                AUTH_TOKEN:
                    default: your-auth-token
                    expose: false
                REDIS_CONN_STRING:
                    default: ${REDIS_CONNECTION_STRING}
                    expose: false
            configs: []
          domainKey: GENERATED_DOMAIN_PREFIX
