Bagisto怎么配置阿里千问,自动生成描述文案

Bagisto 通义千问模型配置与错误解决方案

一、申请通义千问API密钥

准备工作

  • 阿里云账号(需完成实名认证)

  • 浏览器访问阿里云控制台

申请步骤

  1. 登录阿里云账号
  • 访问 阿里云官网

  • 登录您的账号

  1. 开通通义千问服务
  • 进入 DashScope模型服务灵积控制台

  • 点击开通服务(部分服务可能需要完成实名认证)

  1. 创建API密钥
  • 进入API-KEY管理页面

  • 点击「创建API密钥」按钮

  • 保存生成的API密钥(请妥善保管,密钥仅显示一次)

  1. 了解免费额度
  • 通义千问服务提供约100万tokens的免费额度

  • 超出免费额度后将按实际使用量计费

二、Bagisto后台配置

1. 访问Magic AI设置

  • 登录Bagisto管理后台

  • 导航至「系统设置」→「配置」→「Magic AI」

2. 基础配置

3. 模型选择

  • 在相关功能配置中选择Qwen系列模型

  • 推荐选项:qwen2.5-14b(对应qwen-max)

4. 启用功能模块

  • 根据需要启用内容生成、评论翻译等功能

  • 配置相应的提示词模板

三、解决常见错误

错误1: 401 Unauthorized (No API-key provided) 错误原因

API请求中缺少认证信息,通义千问API要求在请求头中提供API密钥。

解决方案

修改 `Ollama.php` 文件,添加API密钥认证:

复制代码
// 获取API密钥
$apiKey = core()->getConfigData('general.magic_ai.settings.api_key');

// 在请求头中添加Authorization
'headers' => [
    'Accept' => 'application/json',
    'Authorization' => 'Bearer ' . $apiKey,
]

错误2: 400 Bad Request (Model not exist) 错误原因

模型名称与通义千问API要求不匹配,请求格式不符合API规范。

解决方案

修改 `Ollama.php` 文件,添加通义千问模型特定处理:

复制代码
// 检查是否为通义千问模型
$isQwenModel = strpos(strtolower($this->model), 'qwen') !== false;

// 通义千问模型的特殊处理
if ($isQwenModel && strpos($endpoint, 'dashscope.aliyuncs.com') !== false) {
    // 映射正确的千问模型名称
    $modelMap = [
        'qwen2.5-0.5b' => 'qwen-turbo',
        'qwen2.5-1.5b' => 'qwen-turbo',
        'qwen2.5-3b' => 'qwen-plus',
        'qwen2.5-7b' => 'qwen-plus',
        'qwen2.5-14b' => 'qwen-max',
        'qwen-turbo' => 'qwen-turbo',
        'qwen-plus' => 'qwen-plus',
        'qwen-max' => 'qwen-max',
    ];
    
    $qwenModel = $modelMap[strtolower($this->model)] ?? 'qwen-turbo';
    
    // 通义千问API的请求格式
    $result = $httpClient->request('POST', $endpoint, [
        'headers' => [
            'Accept' => 'application/json',
            'Authorization' => 'Bearer ' . $apiKey,
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'model' => $qwenModel,
            'input' => [
                'messages' => [
                    [
                        'role' => 'user',
                        'content' => $this->prompt
                    ]
                ]
            ],
            'parameters' => [
                'temperature' => $this->temperature,
                'top_p' => 0.95,
            ]
        ],
    ]);
    
    $resultData = json_decode($result->getBody()->getContents(), true);
    return $resultData['output']['text'] ?? $resultData['output']['choices'][0]['message']['content'] ?? 'No response';
}

四、完整代码修改

修改文件

  • `Ollama.php`

完整修改后代码

复制代码
<?php

namespace Webkul\MagicAI\Services;

use GuzzleHttp\Client;

class Ollama
{
    /**
     * New service instance.
     */
    public function __construct(
        protected string $model,
        protected string $prompt,
        protected float $temperature,
        protected bool $stream,
        protected bool $raw,
    ) {}

    /**
     * Set LLM prompt text.
     */
    public function ask(): string
    {
        $httpClient = new Client;
        $endpoint = core()->getConfigData('general.magic_ai.settings.api_domain');
        $apiKey = core()->getConfigData('general.magic_ai.settings.api_key');
        
        // 检查是否为通义千问模型
        $isQwenModel = strpos(strtolower($this->model), 'qwen') !== false;
        
        // 通义千问模型的特殊处理
        if ($isQwenModel && strpos($endpoint, 'dashscope.aliyuncs.com') !== false) {
            // 映射正确的千问模型名称
            $modelMap = [
                'qwen2.5-0.5b' => 'qwen-turbo',
                'qwen2.5-1.5b' => 'qwen-turbo',
                'qwen2.5-3b' => 'qwen-plus',
                'qwen2.5-7b' => 'qwen-plus',
                'qwen2.5-14b' => 'qwen-max',
                'qwen-turbo' => 'qwen-turbo',
                'qwen-plus' => 'qwen-plus',
                'qwen-max' => 'qwen-max',
            ];
            
            $qwenModel = $modelMap[strtolower($this->model)] ?? 'qwen-turbo';
            
            // 通义千问API的请求格式
            $result = $httpClient->request('POST', $endpoint, [
                'headers' => [
                    'Accept' => 'application/json',
                    'Authorization' => 'Bearer ' . $apiKey,
                    'Content-Type' => 'application/json',
                ],
                'json' => [
                    'model' => $qwenModel,
                    'input' => [
                        'messages' => [
                            [
                                'role' => 'user',
                                'content' => $this->prompt
                            ]
                        ]
                    ],
                    'parameters' => [
                        'temperature' => $this->temperature,
                        'top_p' => 0.95,
                    ]
                ],
            ]);
            
            $resultData = json_decode($result->getBody()->getContents(), true);
            return $resultData['output']['text'] ?? $resultData['output']['choices'][0]['message']['content'] ?? 'No response';
        }
        
        // 原始Ollama处理逻辑
        $result = $httpClient->request('POST', $endpoint, [
            'headers' => [
                'Accept' => 'application/json',
                'Authorization' => 'Bearer ' . $apiKey,
            ],
            'json' => [
                'model' => $this->model,
                'prompt' => $this->prompt,
                'raw' => $this->raw,
                'stream' => $this->stream,
            ],
        ]);

        $result = json_decode($result->getBody()->getContents(), true);
        return $result['response'] ?? 'No response';
    }
}

五、使用说明

  1. 配置验证
  • 完成上述配置后,可通过生成产品描述等功能测试API连接

  • 检查是否成功获取AI生成的内容

  1. 注意事项
  • 确保API密钥安全,不要在前端代码中暴露

  • 合理设置API请求频率,避免触发限流

  • 监控API使用量,及时了解计费情况

  1. 故障排除
  • 如果遇到其他错误,建议检查网络连接和API密钥有效性

  • 查看阿里云控制台的API调用日志获取详细错误信息

通过以上配置和修改,Bagisto系统将能够成功集成通义千问模型,实现AI内容生成、评论翻译等功能。

相关推荐
不会摸鱼的小鱼6 小时前
WSL 安装 Ubuntu 22.04 到指定磁盘
数据库·postgresql·php
淼淼爱喝水10 小时前
DVWA和Pikachu命令注入漏洞检测实验
安全·web安全·php·pikachu·dvwa
专注VB编程开发20年10 小时前
json和python元组,列表,字典对比
开发语言·python·json·php
怀旧,11 小时前
【Linux网络编程】15. Reactor 反应堆模式
linux·网络·php
Dylan的码园11 小时前
2026年免费远程控制软件哪个好?ToDesk向日葵UU远程免费版横评,不限次数不限时长
服务器·开发语言·php
dog25011 小时前
解析几何的力量(1)
服务器·开发语言·网络·php
号码认证服务12 小时前
如何让来电显示公司名代替陌生数字号码?企业号码认证开通指南
服务器·c语言·网络·经验分享·智能手机·云计算·php
一念春风13 小时前
QwenPaw(替代小龙虾)大模型
开发语言·php
是有头发的程序猿14 小时前
AI Agent自动化交易流程:1688定制交易API全链路开发实战教程(Python源码)
python·自动化·php
极梦网络无忧14 小时前
# 从零打造 Composer 依赖包:ThinkPHP 项目开发实战指南
php·composer