feat(compute): 用户端算力中心 base 地址支持公网配置(PINEAGENTS_COMPUTE_PUBLIC_BASE)
- config 加 COMPUTE_PUBLIC_BASE; /opc/compute/base 优先用公网, 回落 request.base_url - 避免经代理显示 127.0.0.1 内部地址; 用户可获真实可用的 /v1 接入地址
This commit is contained in:
@@ -14,6 +14,7 @@ from ..schemas.opc import BidRequest, ProfileUpdate, FinanceRecordCreate
|
||||
from ...rbac import require_roles, write_audit
|
||||
from ...infrastructure.repositories import Database, new_id, utcnow_iso
|
||||
from ...infrastructure.models import FinanceRecord
|
||||
from ... import config
|
||||
from ...services import compute_client, compute_catalog
|
||||
|
||||
router = APIRouter(prefix="/opc", tags=["opc"])
|
||||
@@ -221,14 +222,15 @@ async def opc_compute_base(
|
||||
request: Request,
|
||||
user: dict = Depends(require_roles("opc_member")),
|
||||
):
|
||||
"""用户接入地址:经 server-core /v1 中继(OpenAI 兼容)。"""
|
||||
base = request.base_url.rstrip("/")
|
||||
"""用户接入地址:经 server-core /v1 中继(OpenAI 兼容)。优先用公网配置,回落请求 host。"""
|
||||
base = config.COMPUTE_PUBLIC_BASE or request.base_url.rstrip("/")
|
||||
base = base.rstrip("/")
|
||||
return {
|
||||
"base_url": f"{base}/v1",
|
||||
"relay_path": "/v1/chat/completions",
|
||||
"models_path": "/v1/models",
|
||||
"username": user.get("username"),
|
||||
"hint": "将 base_url 与下方令牌填入 OpenAI 兼容客户端(如 request_url/base)即可调用本平台模型",
|
||||
"hint": "将 base_url 与下方令牌填入 OpenAI 兼容客户端(如 base_url/api_key)即可调用本平台模型",
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -115,6 +115,9 @@ COMPUTE_ADMIN_TOKEN = os.environ.get("PINEAGENTS_INTERNAL_TOKEN") or os.environ.
|
||||
# /v1 模型中继转发(relay.py)用的引擎消费令牌:需是引擎 /v1 能识别的真实用户/渠道令牌,
|
||||
# 与聚合 root 的 COMPUTE_ADMIN_TOKEN 区分开(后者仅用于管理/root 端点)。回退 COMPUTE_ADMIN_TOKEN。
|
||||
COMPUTE_RELAY_TOKEN = os.environ.get("PINEAGENTS_COMPUTE_RELAY_TOKEN", "")
|
||||
# 用户端算力中心「基础 API 地址」:对外公网地址(如 https://opc.pinesound.cn),供用户其它工具接入。
|
||||
# 未设置时回落请求的 base_url。经代理时 request.base_url 可能为内部地址,故用此配置给公网地址。
|
||||
COMPUTE_PUBLIC_BASE = os.environ.get("PINEAGENTS_COMPUTE_PUBLIC_BASE", "").rstrip("/")
|
||||
COMPUTE_TIMEOUT = float(os.environ.get("PINEAGENTS_COMPUTE_TIMEOUT", "10"))
|
||||
COMPUTE_RETRIES = int(os.environ.get("PINEAGENTS_COMPUTE_RETRIES", "2"))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user