wpmind/includes/Providers/AbstractOpenAiCompatibleTextGenerationModel.php
LinuxJoy dcfa6f5cbe feat(v1.3.1): 提升为一级菜单 + 统一 API Key 管理 + UI 优化
## 新功能
- 提升为一级菜单"心思",使用心形图标
- 统一 API Key 管理界面,所有服务在同一页面管理
- 优化服务显示名称(ChatGPT、Claude、Gemini 等)

## Bug 修复
- 修复高级设置按钮无响应问题
- 修复 HTML 验证错误(label for 属性)
- 修复样式丢失问题(hook suffix 更新)

## 技术改进
- 移除调试用 console.log 语句
- 为每个服务添加 display_name 字段
- 更新 hook suffix 从 settings_page_wpmind 到 toplevel_page_wpmind

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 20:15:58 +08:00

65 lines
1.6 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
/**
* OpenAI 兼容文本生成模型抽象基类
*
* @package WPMind
* @since 1.3.0
*/
declare(strict_types=1);
namespace WPMind\Providers;
use WordPress\AiClient\Providers\Http\DTO\Request;
use WordPress\AiClient\Providers\Http\Enums\HttpMethodEnum;
use WordPress\AiClient\Providers\OpenAiCompatibleImplementation\AbstractOpenAiCompatibleTextGenerationModel as BaseModel;
/**
* OpenAI 兼容文本生成模型抽象基类
*
* @since 1.3.0
*/
abstract class AbstractOpenAiCompatibleTextGenerationModel extends BaseModel
{
/**
* 获取 Provider 类名
*
* @return class-string<AbstractOpenAiCompatibleProvider>
*/
abstract protected static function providerClass(): string;
/**
* {@inheritDoc}
*/
protected function createRequest(
HttpMethodEnum $method,
string $path,
array $headers = [],
$data = null
): Request {
$providerClass = static::providerClass();
return new Request(
$method,
$providerClass::url($path),
$headers,
$data,
$this->getRequestOptions()
);
}
/**
* {@inheritDoc}
*
* 重写以强制 n=1因为大多数国内 AI 服务不支持多候选
*/
protected function prepareGenerateTextParams(array $prompt): array
{
$params = parent::prepareGenerateTextParams($prompt);
// 强制 n=1忽略 candidateCount 配置
// 大多数国内 AI 服务DeepSeek、智谱等只支持 n=1
$params['n'] = 1;
return $params;
}
}