根据您提供的API调用示例,我已经完成了以下修改:
- API端点:
https://qianfan.baidubce.com/v2/chat/completions - 认证方式: Bearer Token(直接使用API Key,格式:
bce-v3/ALTAK-xxx/xxx) - 请求头:
Content-Type: application/jsonAuthorization: Bearer {api-key}appid: {app-id}
- 请求体:
{ "model": "ernie-4.5-turbo-128k", "messages": [...], "stream": false, "temperature": 0.7, "max_output_tokens": 2000 }
- API端点:
https://qianfan.baidubce.com/v2/chat/completions(与文心一言相同) - 认证方式: Bearer Token(直接使用API Key)
- 请求头: 与文心一言相同
- 请求体:
{ "model": "qwen-3-235b-a22b", "messages": [...], "stream": false, "temperature": 0.7, "max_output_tokens": 2000 }
配置文件现在需要以下参数:
ai:
provider: ernie # 或 qwen
ernie:
api-key: bce-v3/ALTAK-xxx/xxx # Bearer Token
app-id: app-xxxxx # 应用ID
model: ernie-4.5-turbo-128k # 模型名称
api-url: https://qianfan.baidubce.com/v2/chat/completions
qwen:
api-key: bce-v3/ALTAK-xxx/xxx # Bearer Token
app-id: app-xxxxx # 应用ID
model: qwen-3-235b-a22b # 模型名称
api-url: https://qianfan.baidubce.com/v2/chat/completions-
移除了OAuth2.0认证流程
- 不再需要获取access_token
- 直接使用Bearer Token格式的API Key
-
添加了appid参数
- 需要在请求头中添加
appid字段 - 配置文件中新增
app-id配置项
- 需要在请求头中添加
-
统一了API端点
- 文心一言和通义千问都使用相同的API端点
- 通过
model参数区分不同的模型
-
更新了响应解析
- 支持标准的
choices格式响应 - 兼容
result格式(向后兼容)
- 支持标准的
Windows (PowerShell):
$env:ERNIE_API_KEY="bce-v3/ALTAK-fUJrfrzDYVLOTTwkrha87/bd38d6e59dfcbb11b38ad66729f2868c24d8ce5a"
$env:ERNIE_APP_ID="app-0BApSgld"
$env:ERNIE_MODEL="ernie-4.5-turbo-128k"Linux/Mac:
export ERNIE_API_KEY="bce-v3/ALTAK-fUJrfrzDYVLOTTwkrha87/bd38d6e59dfcbb11b38ad66729f2868c24d8ce5a"
export ERNIE_APP_ID="app-0BApSgld"
export ERNIE_MODEL="ernie-4.5-turbo-128k"直接编辑 backend/src/main/resources/application.yml:
ai:
provider: ernie
ernie:
api-key: bce-v3/ALTAK-fUJrfrzDYVLOTTwkrha87/bd38d6e59dfcbb11b38ad66729f2868c24d8ce5a
app-id: app-0BApSgld
model: ernie-4.5-turbo-128k
api-url: https://qianfan.baidubce.com/v2/chat/completions配置完成后,可以:
- 启动后端服务
- 在前端点击"🤖 AI 功能"
- 尝试使用任意AI功能
- 如果配置正确,应该能看到AI生成的内容
- API Key格式: 必须是Bearer Token格式,如
bce-v3/ALTAK-xxx/xxx - App ID: 必须与API Key对应的应用ID匹配
- 模型名称:
- 文心一言:
ernie-4.5-turbo-128k - 通义千问:
qwen-3-235b-a22b
- 文心一言:
- API端点: 两个服务使用相同的端点,通过
model参数区分 - 请求格式: 使用标准的Chat Completions格式
backend/src/main/java/com/markglow/config/AIConfig.java- 更新配置类backend/src/main/java/com/markglow/service/ai/impl/ErnieAIService.java- 更新API调用backend/src/main/java/com/markglow/service/ai/impl/QwenAIService.java- 更新API调用backend/src/main/resources/application.yml- 更新配置示例AI_CONFIG.md- 更新配置文档