BellaService 接入攻略
概述
BellaService 是 Bella OpenAPI 体系中为能力点服务提供的 Spring Boot 集成框架。它通过一个简单的注解为您的服务自动配置与 Bella OpenAPI 网关的集成能力,包括用户认证、请求追踪、上下文管理等核心功能。
推荐使用BellaService的项目
- 所有Bella体系下的服务
- 依靠Bella能力点,对外提供平台能力的服务
- 目前只支持Spring Boot服务
核心功能
1. 自动化配置
- 零配置集成:通过
@BellaService注解自动配置所有必要的组件 - 请求过滤器:自动注册
BellaRequestFilter,处理请求头和用户认证 - 拦截器链:自动配置认证拦截器和并发控制拦截器
- HTTP 客户端优化:自动启用 Bella 专用的 HTTP 拦截器
2. 双重客户端模式
BellaService 提供两种不同定位的客户端:
OpenapiClient(管理类接口)
- 用途:服务管理、元数据查询、日志记录等管理功能
- 使用限制:Bella体系下的能力点服务
- 认证方式:使用配置的服务 AK(Service Access Key)
- 主要功能:
- 验证用户 API Key:
whoami(apikey),validate(apikey) - 权限检查:
hasPermission(apikey, url) - 模型信息查询:
getModelInfo(modelName) - 请求路由:
route(endpoint, model, queueMode, userApikey) - 日志记录:
log(processData)
- 验证用户 API Key:
OpenAiService(能力点接口)
- 用途:调用 AI 能力接口(聊天、嵌入、TTS、ASR 等)
- 认证方式:使用请求上下文中的用户 AK
- 主要特点:
- 自动获取当前请求的用户认证信息
- 支持自定义超时配置
- 完全兼容 OpenAI SDK 接口
- 自动注入 Bella 请求上下文
3. 请求上下文管理
- BellaContext:ThreadLocal 上下文,自动管理请求级别的信息
- 自动追踪:每个请求自动生成 TraceID 和 RequestID
- 用户信息:自动解析和缓存用户 API Key 信息
- 请求头传递:自动处理
X-BELLA-*系列请求头
4. 内置拦截器
BellaService 自动配置了两个关键拦截器:
AuthorizationInterceptor(认证拦截器)
- 作用路径:
/console/**和/v*/**(所有版本化API路径) - 执行优先级:100
- 主要功能:
- 验证请求中的用户认证信息(API Key)
- 如果没有有效的 Authorization 头,抛出
AuthorizationException - 支持通过
ucid请求头设置用户操作者信息 - 自动跳过异步请求的重复认证检查