* allow making AI request through azure.
This commit is contained in:
+12
-4
@@ -5,10 +5,18 @@ $config->ai->vendorList['azure']['requiredFields'] = array('key', 'resource', '
|
||||
|
||||
$config->ai->openai = new stdclass();
|
||||
$config->ai->openai->api = new stdclass();
|
||||
$config->ai->openai->api->version = 'v1'; // OpenAI API version, required.
|
||||
$config->ai->openai->api->format = 'https://api.openai.com/%s/%s'; // OpenAI API format, args: API version, API name.
|
||||
$config->ai->openai->api->authFormat = 'Authorization: Bearer %s'; // OpenAI API auth header format.
|
||||
$config->ai->openai->api->methods = array('function' => 'chat/completions', 'chat' => 'chat/completions', 'completion' => 'completions', 'edit' => 'edits');
|
||||
$config->ai->openai->api->vendor = array('openai', 'azure');
|
||||
$config->ai->openai->api->openai = new stdclass();
|
||||
$config->ai->openai->api->openai->version = 'v1'; // OpenAI API version, required.
|
||||
$config->ai->openai->api->openai->format = 'https://api.openai.com/%s/%s'; // OpenAI API format, args: API version, API name.
|
||||
$config->ai->openai->api->openai->authFormat = 'Authorization: Bearer %s'; // OpenAI API auth header format.
|
||||
$config->ai->openai->api->azure = new stdclass();
|
||||
$config->ai->openai->api->azure->resource = 'openai-at-zentao'; // your Azure OpenAI resource name, required.
|
||||
$config->ai->openai->api->azure->deployment = 'the-first-gpt'; // your Azure OpenAI deployment name, required.
|
||||
$config->ai->openai->api->azure->apiVersion = '2023-07-01-preview'; // Azure OpenAI API version, required.
|
||||
$config->ai->openai->api->azure->format = 'https://%s.openai.azure.com/openai/deployments/%s/%s?api-version=%s'; // Azure API format, args: resource name, deployment name, API name, API version.
|
||||
$config->ai->openai->api->azure->authFormat = 'api-key: %s'; // Azure API auth header format.
|
||||
$config->ai->openai->api->methods = array('function' => 'chat/completions', 'chat' => 'chat/completions', 'completion' => 'completions', 'edit' => 'edits');
|
||||
|
||||
$config->ai->openai->params = new stdclass();
|
||||
$config->ai->openai->params->chat = new stdclass();
|
||||
|
||||
+9
-2
@@ -70,11 +70,18 @@ class aiModel extends model
|
||||
if(json_last_error()) $postData = $data;
|
||||
|
||||
/* Set auth and content-type headers. */
|
||||
$requestHeaders = array(sprintf($this->config->ai->openai->api->authFormat, $this->modelConfig->key));
|
||||
$requestHeaders = array(sprintf($this->config->ai->openai->api->{$this->modelConfig->vendor}->authFormat, $this->modelConfig->key));
|
||||
$requestHeaders[] = isset($this->config->ai->openai->contentType[$type]) ? $this->config->ai->openai->contentType[$type] : $this->config->ai->openai->contentType[''];
|
||||
|
||||
/* Assemble request url. */
|
||||
$url = sprintf($this->config->ai->openai->api->format, $this->config->ai->openai->api->version, $this->config->ai->openai->api->methods[$type]);
|
||||
if($this->modelConfig->vendor == 'azure')
|
||||
{
|
||||
$url = sprintf($this->config->ai->openai->api->azure->format, $this->config->ai->openai->api->azure->resource, $this->config->ai->openai->api->azure->deployment, $this->config->ai->openai->api->methods[$type], $this->config->ai->openai->api->azure->apiVersion);
|
||||
}
|
||||
else
|
||||
{
|
||||
$url = sprintf($this->config->ai->openai->api->openai->format, $this->config->ai->openai->api->openai->version, $this->config->ai->openai->api->methods[$type]);
|
||||
}
|
||||
|
||||
/* Set up requestor. */
|
||||
$ch = curl_init();
|
||||
|
||||
Reference in New Issue
Block a user