PG 运行时与 Seed
当前 Aidy 运行时统一来自 PostgreSQL。
PG runtime 资源
seed 主要覆盖这些资源:
providersprovider_pricingstenantsroutesupstreamsupstream_modelsconsumersconsumer_api_keysroute_allowed_consumersroute_allowed_models
注意:上游 API key 直接写在 upstreams[].api_keys[] 里。
Seed 命令
go run ./cmd/aidy-gateway seed --profile dev
常用封装:
just db-seed
just db-seed profile=demo
just db-seed --seed-file ./examples/config/custom.seed.yaml
执行顺序固定为:
- 删除当前 schema 中的所有表(包含
schema_migrations) - 重新执行内置 migration
- 再写入 seed profile
所以 seed 命令现在是“重建式初始化”,不是在现有数据上做增量 upsert。
示例
providers:
- id: gp_dev_openai
source_scope: global
source_ref_id: ""
name: openai-dev
protocol: chat-completion
base_url: http://127.0.0.1:18000/v1
provider_pricings:
- id: ppr_dev_mock
provider_id: gp_dev_openai
model: mock
pricing:
input:
unit: token
unit_size: 1000000
credit: 500
output:
unit: token
unit_size: 1000000
credit: 1500
tenants:
- id: tn_dev
name: Dev Tenant
status: active
routes:
- id: rt_dev
tenant_id: tn_dev
name: dev
path_prefix: /mock
upstreams:
- id: ups_dev_primary
tenant_id: tn_dev
provider_id: gp_dev_openai
name: primary
api_keys:
- id: uak_dev_primary
name: primary
key: sk-upstream-dev
upstream_models:
- tenant_id: tn_dev
upstream_id: ups_dev_primary
model: mock
upstream_model: mock
- tenant_id: tn_dev
upstream_id: ups_dev_primary
model: mock-latest
is_alias: true
upstream_model: mock
consumers:
- id: cs_dev_default
tenant_id: tn_dev
name: dev-default
status: active
unlimited_credit: true
consumer_api_keys:
- id: cak_dev_default
tenant_id: tn_dev
consumer_id: cs_dev_default
name: dev-default
token: sk-mock
unlimited_credit: true
语义
Upstream API keys
在 seed 中,upstream key 直接写在 upstreams[].api_keys[] 下。
当前直接写完整 key:
api_keys:
- id: uak_dev_primary
name: primary
key: sk-upstream-dev
Upstream models
当前不再有 alias 数组。若需要 alias,就额外写一行 is_alias: true:
upstream_models:
- tenant_id: tn_dev
upstream_id: ups_dev_primary
model: gpt-4o-mini
upstream_model: gpt-4o-mini
- tenant_id: tn_dev
upstream_id: ups_dev_primary
model: gpt-4o-mini-latest
is_alias: true
upstream_model: gpt-4o-mini
分组
routes.groupsconsumers.groupsconsumer_api_keys.groups
这些字段留空时表示“不限制任何组”。
upstreams.group 仍默认 default。