Files
geo/deploy/config.yaml
T
root 37b0b32327 feat(admin-brand): add question expansion service and related functionality
- Implemented QuestionExpansionService for generating and materializing questions based on combinations and AI distillation.
- Added question metadata classification logic to infer intent and layer of questions.
- Created API handlers for question expansion operations including combination preview, AI distillation, metadata classification, and materialization.
- Introduced database migrations to support new question-related fields and constraints in brand_questions and brand_keywords tables.
- Added caching mechanism for AI distillation results to improve performance.
- Defined JSON schemas for question distillation responses to ensure data integrity.
2026-05-12 21:53:36 +08:00

243 lines
6.3 KiB
YAML

server:
port: 8080
mode: release
trusted_proxies:
- 127.0.0.1
- ::1
- 10.42.0.0/16
- 10.43.0.0/16
- 172.16.0.0/12
database:
host: pgbouncer
port: 5432
user: geo
password: ${POSTGRES_PASSWORD:geo_dev}
dbname: geo
sslmode: disable
max_open_conns: 12
max_idle_conns: 3
monitoring_database:
host: monitoring-pgbouncer
port: 5432
user: geo
password: ${POSTGRES_PASSWORD:geo_dev}
dbname: geo_monitoring
sslmode: disable
max_open_conns: 8
max_idle_conns: 2
rabbitmq:
url: amqp://geo:geo_dev@rabbitmq:5672/geo
monitor_result_exchange: monitor.result
monitor_result_routing_key: monitor.result.ingest
monitor_result_queue: monitor.result.ingest
monitor_result_dlx: monitor.result.dlx
monitor_result_dlq: monitor.result.ingest.dlq
monitor_result_dlq_routing_key: monitor.result.ingest.dlq
monitor_projection_exchange: monitor.projection
monitor_projection_routing_key: monitor.projection.rebuild
monitor_projection_queue: monitor.projection.rebuild
monitor_projection_dlx: monitor.projection.dlx
monitor_projection_dlq: monitor.projection.rebuild.dlq
monitor_projection_dlq_routing_key: monitor.projection.rebuild.dlq
generation_exchange: generation.task
generation_routing_key: generation.task.run
generation_queue: generation.task.run
generation_dlx: generation.task.dlx
generation_dlq: generation.task.run.dlq
generation_dlq_routing_key: generation.task.run.dlq
generation_event_exchange: generation.event
desktop_task_event_exchange: desktop.task.event
desktop_dispatch_exchange: desktop.task.dispatch
desktop_dispatch_publish_prefix: publish
desktop_dispatch_monitor_prefix: monitor
desktop_account_health_exchange: desktop.account.health
desktop_account_health_routing_key: desktop.account.health.report
desktop_account_health_queue: desktop.account.health.report
desktop_account_health_dlx: desktop.account.health.dlx
desktop_account_health_dlq: desktop.account.health.report.dlq
desktop_account_health_dlq_routing_key: desktop.account.health.report.dlq
template_assist_exchange: template.assist
template_assist_routing_key: template.assist.run
template_assist_queue: template.assist.run
template_assist_dlx: template.assist.dlx
template_assist_dlq: template.assist.run.dlq
template_assist_dlq_routing_key: template.assist.run.dlq
kol_assist_exchange: kol.assist
kol_assist_routing_key: kol.assist.run
kol_assist_queue: kol.assist.run
kol_assist_dlx: kol.assist.dlx
kol_assist_dlq: kol.assist.run.dlq
kol_assist_dlq_routing_key: kol.assist.run.dlq
compliance_review_exchange: compliance.review
compliance_review_routing_key: compliance.review.run
compliance_review_queue: compliance.review.run
compliance_review_dlx: compliance.review.dlx
compliance_review_dlq: compliance.review.run.dlq
compliance_review_dlq_routing_key: compliance.review.run.dlq
consumer_prefetch: 10
publish_channel_pool_size: 32
scheduler:
http_host: 127.0.0.1
http_port: 8081
internal_metrics_token: dev_scheduler_metrics_token
dispatch_interval: 15s
dispatch_timeout: 30s
dispatch_batch_size: 100
dispatch_concurrency: 4
generation_queue_backpressure_limit: 1000
monitoring_workers:
result_ingest_concurrency: 4
projection_rebuild_concurrency: 2
monitoring_dispatch:
desktop_tasks_rollout_percentage: 5
membership:
default_plan_code: free
plans:
- code: free
name: Free
article_generation: 3
article_quota_cycle: lifetime
ai_points_monthly: 0
ai_point_base_chars: 1000
image_storage_bytes: 10485760
company_limit: 1
subscription_duration: 72h
contact_admin_on_expiry: true
- code: plus
name: Plus
article_generation: 200
article_quota_cycle: monthly
ai_points_monthly: 1000
ai_point_base_chars: 1000
image_storage_bytes: 26214000
company_limit: 1
subscription_duration: 720h
- code: pro
name: Pro
article_generation: 400
article_quota_cycle: monthly
ai_points_monthly: 1500
ai_point_base_chars: 1000
image_storage_bytes: 524288000
company_limit: 2
subscription_duration: 720h
brand_library:
free_brand_limit: 1
paid_brand_limit: 2
question_limits_by_plan:
default: 25
free: 5
plus: 25
pro: 50
max_keywords: 5
max_questions_per_keyword: 5
redis:
addr: redis:6379
db: 0
qdrant:
url: qdrant:6334
api_key: ""
collection: geo_knowledge_chunks
timeout: 15s
object_storage:
provider: minio
endpoint: minio:9000
access_key: minioadmin
secret_key: minioadmin
bucket: geo-private
use_ssl: false
public_base_url: ""
region: ""
cache:
driver: redis
jwt:
# Override via JWT_SECRET env var in .env
secret: "change-me-in-production"
access_ttl: 15m
refresh_ttl: 720h
log:
level: info,warn,error
format: json
llm:
provider: ark
base_url: https://ark.cn-beijing.volces.com/api/v3
api_key: "7fb6c66b-129c-4935-9617-709236c4205a"
model: doubao-seed-2-0-pro-260215 # doubao-seed-2-0-lite-260215 #
knowledge_url_model: doubao-seed-2-0-mini-260215 #doubao-seed-2-0-mini-260215
timeout: 2m
max_output_tokens: 16000
temperature: 0.7
reasoning_effort: minimal
web_search_limit: 3
compliance:
enabled: true
llm_judge_enabled: false
snapshot_reload_interval: 30s
publish_gate_timeout: 800ms
review_worker_concurrency: 1
review_worker_timeout: 45s
review_max_attempts: 3
retrieval:
provider: siliconflow
base_url: https://api.siliconflow.cn/v1
api_key: "sk-dikvcafrdcbajjpfgjjephqcggpdxwxdkighllieijlehwsf"
embedding_model: BAAI/bge-m3
reranker_model: BAAI/bge-reranker-v2-m3
timeout: 30s
chunk_size: 900
chunk_overlap: 120
embedding_batch_size: 16
recall_limit: 12
rerank_top_n: 6
max_chunks_per_doc: 6
overlap_tokens: 60
generation:
queue_size: 128
worker_concurrency: 8
stream_enabled: false
article_timeout: 8m
task_lease_ttl: 10m
task_recovery_interval: 1m
task_recovery_timeout: 30s
task_recovery_batch_size: 100
task_queued_stale_after: 2m
task_max_attempts: 3
browser_fetch:
enabled: true
provider: lightpanda
service_url: http://browser-fetch:8082
queue_size: 64
worker_concurrency: 2
request_timeout: 45s
cache_ttl: 6h
allowed_domains:
- zhuanlan.zhihu.com
- zhihu.com
- baidu.com
trigger_status:
- 403
- 429
- 500
- 502
- 503
- 504