Update class-ai-api.php

This commit is contained in:
Nikita 2024-12-27 15:40:48 +03:00
parent e67eca2ee0
commit 47425107af

View file

@ -82,14 +82,14 @@ class Mind_AI_API {
if ( 'gpt-4o' === $ai_model || 'gpt-4o-mini' === $ai_model ) { if ( 'gpt-4o' === $ai_model || 'gpt-4o-mini' === $ai_model ) {
if ( ! empty( $settings['openai_api_key'] ) ) { if ( ! empty( $settings['openai_api_key'] ) ) {
$result = [ $result = [
'model' => $ai_model, 'name' => $ai_model,
'key' => $settings['openai_api_key'], 'key' => $settings['openai_api_key'],
]; ];
} }
} elseif ( ! empty( $settings['anthropic_api_key'] ) ) { } elseif ( ! empty( $settings['anthropic_api_key'] ) ) {
$result = [ $result = [
'model' => 'claude-3-5-haiku' === $ai_model ? 'claude-3-5-haiku' : 'claude-3-5-sonnet', 'name' => 'claude-3-5-haiku' === $ai_model ? 'claude-3-5-haiku' : 'claude-3-5-sonnet',
'key' => $settings['anthropic_api_key'], 'key' => $settings['anthropic_api_key'],
]; ];
} }
} }
@ -130,9 +130,9 @@ class Mind_AI_API {
$messages = $this->prepare_messages( $request, $context ); $messages = $this->prepare_messages( $request, $context );
if ( 'gpt-4o' === $connected_model['model'] || 'gpt-4o-mini' === $connected_model['model'] ) { if ( 'gpt-4o' === $connected_model['model'] || 'gpt-4o-mini' === $connected_model['model'] ) {
$this->request_open_ai( $connected_model['model'], $connected_model['key'], $messages ); $this->request_open_ai( $connected_model, $messages );
} else { } else {
$this->request_anthropic( $connected_model['model'], $connected_model['key'], $messages ); $this->request_anthropic( $connected_model, $messages );
} }
exit; exit;
@ -211,22 +211,22 @@ class Mind_AI_API {
/** /**
* Request Anthropic API. * Request Anthropic API.
* *
* @param string $model model. * @param array $model model.
* @param string $key key. * @param array $messages messages.
* @param array $messages messages.
*/ */
public function request_anthropic( $model, $key, $messages ) { public function request_anthropic( $model, $messages ) {
$anthropic_messages = $this->convert_to_anthropic_messages( $messages ); $anthropic_messages = $this->convert_to_anthropic_messages( $messages );
$anthropic_version = '2023-06-01'; $anthropic_version = '2023-06-01';
$model_name = $model['name'];
if ( 'claude-3-5-haiku' === $model ) { if ( 'claude-3-5-haiku' === $model['name'] ) {
$model = 'claude-3-5-haiku-20241022'; $model_name = 'claude-3-5-haiku-20241022';
} else { } else {
$model = 'claude-3-5-sonnet-20241022'; $model_name = 'claude-3-5-sonnet-20241022';
} }
$body = [ $body = [
'model' => $model, 'model' => $model_name,
'max_tokens' => 8192, 'max_tokens' => 8192,
'system' => $anthropic_messages['system'], 'system' => $anthropic_messages['system'],
'messages' => $anthropic_messages['messages'], 'messages' => $anthropic_messages['messages'],
@ -243,7 +243,7 @@ class Mind_AI_API {
CURLOPT_HTTPHEADER, CURLOPT_HTTPHEADER,
[ [
'Content-Type: application/json', 'Content-Type: application/json',
'x-api-key: ' . $key, 'x-api-key: ' . $model['key'],
'anthropic-version: ' . $anthropic_version, 'anthropic-version: ' . $anthropic_version,
] ]
); );
@ -281,13 +281,12 @@ class Mind_AI_API {
/** /**
* Request OpenAI API. * Request OpenAI API.
* *
* @param string $model model. * @param array $model model.
* @param string $key key. * @param array $messages messages.
* @param array $messages messages.
*/ */
public function request_open_ai( $model, $key, $messages ) { public function request_open_ai( $model, $messages ) {
$body = [ $body = [
'model' => $model, 'model' => $model['name'],
'stream' => true, 'stream' => true,
'top_p' => 0.9, 'top_p' => 0.9,
'temperature' => 0.7, 'temperature' => 0.7,
@ -304,7 +303,7 @@ class Mind_AI_API {
CURLOPT_HTTPHEADER, CURLOPT_HTTPHEADER,
[ [
'Content-Type: application/json', 'Content-Type: application/json',
'Authorization: Bearer ' . $key, 'Authorization: Bearer ' . $model['key'],
] ]
); );
curl_setopt( $ch, CURLOPT_POSTFIELDS, wp_json_encode( $body ) ); curl_setopt( $ch, CURLOPT_POSTFIELDS, wp_json_encode( $body ) );