forked from joomla/openai
update 2023-07-12 09:14:53
This commit is contained in:
parent
2244f466d4
commit
a15c785c23
@ -83,9 +83,30 @@ class Utilities implements ServiceProviderInterface
|
|||||||
*/
|
*/
|
||||||
public function getHttp(Container $container): Http
|
public function getHttp(Container $container): Http
|
||||||
{
|
{
|
||||||
|
$openai_token = null;
|
||||||
|
$openai_org_token = null;
|
||||||
|
if (Helper::getParams()->get('enable_open_ai') == 1)
|
||||||
|
{
|
||||||
|
$openai_token = Helper::getParams()->get('openai_token');
|
||||||
|
if (Helper::getParams()->get('enable_open_ai_org') == 1)
|
||||||
|
{
|
||||||
|
$openai_org_token = Helper::getParams()->get('openai_org_token');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($openai_token === 'secret')
|
||||||
|
{
|
||||||
|
$openai_token = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($openai_org_token === 'secret')
|
||||||
|
{
|
||||||
|
$openai_org_token = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return new Http(
|
return new Http(
|
||||||
Helper::getParams()->get('openai_token'),
|
$openai_token,
|
||||||
Helper::getParams()->get('openai_org_token')
|
$openai_org_token
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -54,8 +54,29 @@
|
|||||||
*/
|
*/
|
||||||
public function getHttp(Container $container): Http
|
public function getHttp(Container $container): Http
|
||||||
{
|
{
|
||||||
|
$openai_token = null;
|
||||||
|
$openai_org_token = null;
|
||||||
|
if (Helper::getParams()->get('enable_open_ai') == 1)
|
||||||
|
{
|
||||||
|
$openai_token = Helper::getParams()->get('openai_token');
|
||||||
|
if (Helper::getParams()->get('enable_open_ai_org') == 1)
|
||||||
|
{
|
||||||
|
$openai_org_token = Helper::getParams()->get('openai_org_token');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($openai_token === 'secret')
|
||||||
|
{
|
||||||
|
$openai_token = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($openai_org_token === 'secret')
|
||||||
|
{
|
||||||
|
$openai_org_token = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return new Http(
|
return new Http(
|
||||||
Helper::getParams()->get('openai_token'),
|
$openai_token,
|
||||||
Helper::getParams()->get('openai_org_token')
|
$openai_org_token
|
||||||
);
|
);
|
||||||
}
|
}
|
@ -11,7 +11,11 @@
|
|||||||
```uml
|
```uml
|
||||||
@startuml
|
@startuml
|
||||||
class Http << (F,LightGreen) >> #Green {
|
class Http << (F,LightGreen) >> #Green {
|
||||||
+ __construct(?string $token, ?string $org = null)
|
# array $defaultHeaders
|
||||||
|
+ __construct(?string $token, ?string $orgToken = null)
|
||||||
|
+ setTokens(?string $token = null, ?string $orgToken = null)
|
||||||
|
+ setToken(string $token)
|
||||||
|
+ setOrgToken(string $token)
|
||||||
}
|
}
|
||||||
|
|
||||||
note right of Http::__construct
|
note right of Http::__construct
|
||||||
@ -19,6 +23,24 @@ note right of Http::__construct
|
|||||||
|
|
||||||
since: 3.2.0
|
since: 3.2.0
|
||||||
end note
|
end note
|
||||||
|
|
||||||
|
note right of Http::setTokens
|
||||||
|
Change the Tokens.
|
||||||
|
|
||||||
|
since: 3.2.0
|
||||||
|
end note
|
||||||
|
|
||||||
|
note right of Http::setToken
|
||||||
|
Change the User Token.
|
||||||
|
|
||||||
|
since: 3.2.0
|
||||||
|
end note
|
||||||
|
|
||||||
|
note right of Http::setOrgToken
|
||||||
|
Change the Organization Token.
|
||||||
|
|
||||||
|
since: 3.2.0
|
||||||
|
end note
|
||||||
|
|
||||||
@enduml
|
@enduml
|
||||||
```
|
```
|
||||||
|
@ -23,41 +23,117 @@ use Joomla\Registry\Registry;
|
|||||||
*/
|
*/
|
||||||
final class Http extends JoomlaHttp
|
final class Http extends JoomlaHttp
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* The default Header
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
* @since 3.2.0
|
||||||
|
*/
|
||||||
|
protected array $defaultHeaders = ['Content-Type' => 'application/json'];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor.
|
* Constructor.
|
||||||
*
|
*
|
||||||
* @param string|null $token The Openai API token.
|
* @param string|null $token The Openai API token.
|
||||||
* @param string|null $org The Openai API Organization token.
|
* @param string|null $orgToken The Openai API Organization token.
|
||||||
*
|
*
|
||||||
* @since 3.2.0
|
* @since 3.2.0
|
||||||
* @throws \InvalidArgumentException
|
* @throws \InvalidArgumentException
|
||||||
**/
|
**/
|
||||||
public function __construct(?string $token, ?string $org = null)
|
public function __construct(?string $token, ?string $orgToken = null)
|
||||||
{
|
{
|
||||||
// setup config
|
|
||||||
$config = [
|
|
||||||
'userAgent' => 'JoomlaOpenai/3.0',
|
|
||||||
'headers' => [
|
|
||||||
'Content-Type' => 'application/json'
|
|
||||||
]
|
|
||||||
];
|
|
||||||
|
|
||||||
// add the token if given
|
// add the token if given
|
||||||
if (is_string($token))
|
if (is_string($token))
|
||||||
{
|
{
|
||||||
$config['headers']['Authorization'] = 'Bearer ' . $token;
|
$this->defaultHeaders['Authorization'] = 'Bearer ' . $token;
|
||||||
}
|
}
|
||||||
|
|
||||||
// add the organization token if given
|
// add the organization token if given
|
||||||
if (is_string($org))
|
if (is_string($orgToken))
|
||||||
{
|
{
|
||||||
$config['headers']['OpenAI-Organization'] = $org;
|
$this->defaultHeaders['OpenAI-Organization'] = $orgToken;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// setup config
|
||||||
|
$config = [
|
||||||
|
'userAgent' => 'JoomlaOpenai/3.0',
|
||||||
|
'headers' => $this->defaultHeaders
|
||||||
|
];
|
||||||
|
|
||||||
$options = new Registry($config);
|
$options = new Registry($config);
|
||||||
|
|
||||||
// run parent constructor
|
// run parent constructor
|
||||||
parent::__construct($options);
|
parent::__construct($options);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Change the Tokens.
|
||||||
|
*
|
||||||
|
* @param string|null $token The Openai API token.
|
||||||
|
* @param string|null $orgToken The Openai API Organization token.
|
||||||
|
*
|
||||||
|
* @since 3.2.0
|
||||||
|
**/
|
||||||
|
public function setTokens(?string $token = null, ?string $orgToken = null)
|
||||||
|
{
|
||||||
|
// get the current headers
|
||||||
|
$this->defaultHeaders = (array) $this->getOption('headers',
|
||||||
|
$this->defaultHeaders
|
||||||
|
);
|
||||||
|
|
||||||
|
// add the token if given
|
||||||
|
if (is_string($token))
|
||||||
|
{
|
||||||
|
$this->defaultHeaders['Authorization'] = 'Bearer ' . $token;
|
||||||
|
}
|
||||||
|
|
||||||
|
// add the organization token if given
|
||||||
|
if (is_string($orgToken))
|
||||||
|
{
|
||||||
|
$this->defaultHeaders['OpenAI-Organization'] = $orgToken;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->setOption('headers', $this->defaultHeaders);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Change the User Token.
|
||||||
|
*
|
||||||
|
* @param string $token The API token.
|
||||||
|
*
|
||||||
|
* @since 3.2.0
|
||||||
|
**/
|
||||||
|
public function setToken(string $token)
|
||||||
|
{
|
||||||
|
// get the current headers
|
||||||
|
$this->defaultHeaders = (array) $this->getOption('headers',
|
||||||
|
$this->defaultHeaders
|
||||||
|
);
|
||||||
|
|
||||||
|
// add the token
|
||||||
|
$this->defaultHeaders['Authorization'] = 'Bearer ' . $token;
|
||||||
|
|
||||||
|
$this->setOption('headers', $this->defaultHeaders);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Change the Organization Token.
|
||||||
|
*
|
||||||
|
* @param string $token The Organization API token.
|
||||||
|
*
|
||||||
|
* @since 3.2.0
|
||||||
|
**/
|
||||||
|
public function setOrgToken(string $token)
|
||||||
|
{
|
||||||
|
// get the current headers
|
||||||
|
$this->defaultHeaders = (array) $this->getOption('headers',
|
||||||
|
$this->defaultHeader
|
||||||
|
);
|
||||||
|
|
||||||
|
// add the token
|
||||||
|
$this->defaultHeaders['OpenAI-Organization'] = $token;
|
||||||
|
|
||||||
|
$this->setOption('headers', $this->defaultHeaders);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,36 +1,112 @@
|
|||||||
|
/**
|
||||||
|
* The default Header
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
* @since 3.2.0
|
||||||
|
*/
|
||||||
|
protected array $defaultHeaders = ['Content-Type' => 'application/json'];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor.
|
* Constructor.
|
||||||
*
|
*
|
||||||
* @param string|null $token The Openai API token.
|
* @param string|null $token The Openai API token.
|
||||||
* @param string|null $org The Openai API Organization token.
|
* @param string|null $orgToken The Openai API Organization token.
|
||||||
*
|
*
|
||||||
* @since 3.2.0
|
* @since 3.2.0
|
||||||
* @throws \InvalidArgumentException
|
* @throws \InvalidArgumentException
|
||||||
**/
|
**/
|
||||||
public function __construct(?string $token, ?string $org = null)
|
public function __construct(?string $token, ?string $orgToken = null)
|
||||||
{
|
{
|
||||||
// setup config
|
|
||||||
$config = [
|
|
||||||
'userAgent' => 'JoomlaOpenai/3.0',
|
|
||||||
'headers' => [
|
|
||||||
'Content-Type' => 'application/json'
|
|
||||||
]
|
|
||||||
];
|
|
||||||
|
|
||||||
// add the token if given
|
// add the token if given
|
||||||
if (is_string($token))
|
if (is_string($token))
|
||||||
{
|
{
|
||||||
$config['headers']['Authorization'] = 'Bearer ' . $token;
|
$this->defaultHeaders['Authorization'] = 'Bearer ' . $token;
|
||||||
}
|
}
|
||||||
|
|
||||||
// add the organization token if given
|
// add the organization token if given
|
||||||
if (is_string($org))
|
if (is_string($orgToken))
|
||||||
{
|
{
|
||||||
$config['headers']['OpenAI-Organization'] = $org;
|
$this->defaultHeaders['OpenAI-Organization'] = $orgToken;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// setup config
|
||||||
|
$config = [
|
||||||
|
'userAgent' => 'JoomlaOpenai/3.0',
|
||||||
|
'headers' => $this->defaultHeaders
|
||||||
|
];
|
||||||
|
|
||||||
$options = new Registry($config);
|
$options = new Registry($config);
|
||||||
|
|
||||||
// run parent constructor
|
// run parent constructor
|
||||||
parent::__construct($options);
|
parent::__construct($options);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Change the Tokens.
|
||||||
|
*
|
||||||
|
* @param string|null $token The Openai API token.
|
||||||
|
* @param string|null $orgToken The Openai API Organization token.
|
||||||
|
*
|
||||||
|
* @since 3.2.0
|
||||||
|
**/
|
||||||
|
public function setTokens(?string $token = null, ?string $orgToken = null)
|
||||||
|
{
|
||||||
|
// get the current headers
|
||||||
|
$this->defaultHeaders = (array) $this->getOption('headers',
|
||||||
|
$this->defaultHeaders
|
||||||
|
);
|
||||||
|
|
||||||
|
// add the token if given
|
||||||
|
if (is_string($token))
|
||||||
|
{
|
||||||
|
$this->defaultHeaders['Authorization'] = 'Bearer ' . $token;
|
||||||
|
}
|
||||||
|
|
||||||
|
// add the organization token if given
|
||||||
|
if (is_string($orgToken))
|
||||||
|
{
|
||||||
|
$this->defaultHeaders['OpenAI-Organization'] = $orgToken;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->setOption('headers', $this->defaultHeaders);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Change the User Token.
|
||||||
|
*
|
||||||
|
* @param string $token The API token.
|
||||||
|
*
|
||||||
|
* @since 3.2.0
|
||||||
|
**/
|
||||||
|
public function setToken(string $token)
|
||||||
|
{
|
||||||
|
// get the current headers
|
||||||
|
$this->defaultHeaders = (array) $this->getOption('headers',
|
||||||
|
$this->defaultHeaders
|
||||||
|
);
|
||||||
|
|
||||||
|
// add the token
|
||||||
|
$this->defaultHeaders['Authorization'] = 'Bearer ' . $token;
|
||||||
|
|
||||||
|
$this->setOption('headers', $this->defaultHeaders);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Change the Organization Token.
|
||||||
|
*
|
||||||
|
* @param string $token The Organization API token.
|
||||||
|
*
|
||||||
|
* @since 3.2.0
|
||||||
|
**/
|
||||||
|
public function setOrgToken(string $token)
|
||||||
|
{
|
||||||
|
// get the current headers
|
||||||
|
$this->defaultHeaders = (array) $this->getOption('headers',
|
||||||
|
$this->defaultHeader
|
||||||
|
);
|
||||||
|
|
||||||
|
// add the token
|
||||||
|
$this->defaultHeaders['OpenAI-Organization'] = $token;
|
||||||
|
|
||||||
|
$this->setOption('headers', $this->defaultHeaders);
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user