This commit is contained in:
parent
8c9fe2e808
commit
26f5e15da8
7 changed files with 28 additions and 452 deletions
84
.vstags
84
.vstags
|
@ -9865,10 +9865,6 @@ OpenAIAsync .build/bu5iQckAwH/blib/lib/OpenAIAsync.pm 1;" p
|
||||||
OpenAIAsync .build/bu5iQckAwH/lib/OpenAIAsync.pm 1;" p
|
OpenAIAsync .build/bu5iQckAwH/lib/OpenAIAsync.pm 1;" p
|
||||||
OpenAIAsync .build/kBWSNkpY90/blib/lib/OpenAIAsync.pm 1;" p
|
OpenAIAsync .build/kBWSNkpY90/blib/lib/OpenAIAsync.pm 1;" p
|
||||||
OpenAIAsync .build/kBWSNkpY90/lib/OpenAIAsync.pm 1;" p
|
OpenAIAsync .build/kBWSNkpY90/lib/OpenAIAsync.pm 1;" p
|
||||||
OpenAIAsync .build/latest/blib/lib/OpenAIAsync.pm 1;" p
|
|
||||||
OpenAIAsync .build/latest/lib/OpenAIAsync.pm 1;" p
|
|
||||||
OpenAIAsync .build/previous/blib/lib/OpenAIAsync.pm 1;" p
|
|
||||||
OpenAIAsync .build/previous/lib/OpenAIAsync.pm 1;" p
|
|
||||||
OpenAIAsync .build/s8al1KxdoG/blib/lib/OpenAIAsync.pm 1;" p
|
OpenAIAsync .build/s8al1KxdoG/blib/lib/OpenAIAsync.pm 1;" p
|
||||||
OpenAIAsync .build/s8al1KxdoG/lib/OpenAIAsync.pm 1;" p
|
OpenAIAsync .build/s8al1KxdoG/lib/OpenAIAsync.pm 1;" p
|
||||||
OpenAIAsync lib/OpenAIAsync.pm 1;" p
|
OpenAIAsync lib/OpenAIAsync.pm 1;" p
|
||||||
|
@ -9890,10 +9886,6 @@ OpenAIAsync::Client .build/bu5iQckAwH/blib/lib/OpenAIAsync/Client.pm 1;" p
|
||||||
OpenAIAsync::Client .build/bu5iQckAwH/lib/OpenAIAsync/Client.pm 1;" p
|
OpenAIAsync::Client .build/bu5iQckAwH/lib/OpenAIAsync/Client.pm 1;" p
|
||||||
OpenAIAsync::Client .build/kBWSNkpY90/blib/lib/OpenAIAsync/Client.pm 1;" p
|
OpenAIAsync::Client .build/kBWSNkpY90/blib/lib/OpenAIAsync/Client.pm 1;" p
|
||||||
OpenAIAsync::Client .build/kBWSNkpY90/lib/OpenAIAsync/Client.pm 1;" p
|
OpenAIAsync::Client .build/kBWSNkpY90/lib/OpenAIAsync/Client.pm 1;" p
|
||||||
OpenAIAsync::Client .build/latest/blib/lib/OpenAIAsync/Client.pm 1;" p
|
|
||||||
OpenAIAsync::Client .build/latest/lib/OpenAIAsync/Client.pm 1;" p
|
|
||||||
OpenAIAsync::Client .build/previous/blib/lib/OpenAIAsync/Client.pm 1;" p
|
|
||||||
OpenAIAsync::Client .build/previous/lib/OpenAIAsync/Client.pm 1;" p
|
|
||||||
OpenAIAsync::Client .build/s8al1KxdoG/blib/lib/OpenAIAsync/Client.pm 1;" p
|
OpenAIAsync::Client .build/s8al1KxdoG/blib/lib/OpenAIAsync/Client.pm 1;" p
|
||||||
OpenAIAsync::Client .build/s8al1KxdoG/lib/OpenAIAsync/Client.pm 1;" p
|
OpenAIAsync::Client .build/s8al1KxdoG/lib/OpenAIAsync/Client.pm 1;" p
|
||||||
OpenAIAsync::Client lib/OpenAIAsync/Client.pm 1;" p
|
OpenAIAsync::Client lib/OpenAIAsync/Client.pm 1;" p
|
||||||
|
@ -9915,10 +9907,6 @@ OpenAIAsync::Server .build/bu5iQckAwH/blib/lib/OpenAIAsync/Server.pm 1;" p
|
||||||
OpenAIAsync::Server .build/bu5iQckAwH/lib/OpenAIAsync/Server.pm 1;" p
|
OpenAIAsync::Server .build/bu5iQckAwH/lib/OpenAIAsync/Server.pm 1;" p
|
||||||
OpenAIAsync::Server .build/kBWSNkpY90/blib/lib/OpenAIAsync/Server.pm 1;" p
|
OpenAIAsync::Server .build/kBWSNkpY90/blib/lib/OpenAIAsync/Server.pm 1;" p
|
||||||
OpenAIAsync::Server .build/kBWSNkpY90/lib/OpenAIAsync/Server.pm 1;" p
|
OpenAIAsync::Server .build/kBWSNkpY90/lib/OpenAIAsync/Server.pm 1;" p
|
||||||
OpenAIAsync::Server .build/latest/blib/lib/OpenAIAsync/Server.pm 1;" p
|
|
||||||
OpenAIAsync::Server .build/latest/lib/OpenAIAsync/Server.pm 1;" p
|
|
||||||
OpenAIAsync::Server .build/previous/blib/lib/OpenAIAsync/Server.pm 1;" p
|
|
||||||
OpenAIAsync::Server .build/previous/lib/OpenAIAsync/Server.pm 1;" p
|
|
||||||
OpenAIAsync::Server .build/s8al1KxdoG/blib/lib/OpenAIAsync/Server.pm 1;" p
|
OpenAIAsync::Server .build/s8al1KxdoG/blib/lib/OpenAIAsync/Server.pm 1;" p
|
||||||
OpenAIAsync::Server .build/s8al1KxdoG/lib/OpenAIAsync/Server.pm 1;" p
|
OpenAIAsync::Server .build/s8al1KxdoG/lib/OpenAIAsync/Server.pm 1;" p
|
||||||
OpenAIAsync::Server lib/OpenAIAsync/Server.pm 1;" p
|
OpenAIAsync::Server lib/OpenAIAsync/Server.pm 1;" p
|
||||||
|
@ -9928,10 +9916,6 @@ OpenAIAsync::Server::API::v1::Audio .build/8vRKKpniYC/blib/lib/OpenAIAsync/Serve
|
||||||
OpenAIAsync::Server::API::v1::Audio .build/8vRKKpniYC/lib/OpenAIAsync/Server/API/v1/Audio.pm 1;" p
|
OpenAIAsync::Server::API::v1::Audio .build/8vRKKpniYC/lib/OpenAIAsync/Server/API/v1/Audio.pm 1;" p
|
||||||
OpenAIAsync::Server::API::v1::Audio .build/FGqz_8QCrj/blib/lib/OpenAIAsync/Server/API/v1/Audio.pm 1;" p
|
OpenAIAsync::Server::API::v1::Audio .build/FGqz_8QCrj/blib/lib/OpenAIAsync/Server/API/v1/Audio.pm 1;" p
|
||||||
OpenAIAsync::Server::API::v1::Audio .build/FGqz_8QCrj/lib/OpenAIAsync/Server/API/v1/Audio.pm 1;" p
|
OpenAIAsync::Server::API::v1::Audio .build/FGqz_8QCrj/lib/OpenAIAsync/Server/API/v1/Audio.pm 1;" p
|
||||||
OpenAIAsync::Server::API::v1::Audio .build/latest/blib/lib/OpenAIAsync/Server/API/v1/Audio.pm 1;" p
|
|
||||||
OpenAIAsync::Server::API::v1::Audio .build/latest/lib/OpenAIAsync/Server/API/v1/Audio.pm 1;" p
|
|
||||||
OpenAIAsync::Server::API::v1::Audio .build/previous/blib/lib/OpenAIAsync/Server/API/v1/Audio.pm 1;" p
|
|
||||||
OpenAIAsync::Server::API::v1::Audio .build/previous/lib/OpenAIAsync/Server/API/v1/Audio.pm 1;" p
|
|
||||||
OpenAIAsync::Server::API::v1::Audio lib/OpenAIAsync/Server/API/v1/Audio.pm 1;" p
|
OpenAIAsync::Server::API::v1::Audio lib/OpenAIAsync/Server/API/v1/Audio.pm 1;" p
|
||||||
OpenAIAsync::Server::API::v1::ChatCompletion .build/6o4PVL1DX3/blib/lib/OpenAIAsync/Server/API/v1/ChatCompletion.pm 1;" p
|
OpenAIAsync::Server::API::v1::ChatCompletion .build/6o4PVL1DX3/blib/lib/OpenAIAsync/Server/API/v1/ChatCompletion.pm 1;" p
|
||||||
OpenAIAsync::Server::API::v1::ChatCompletion .build/6o4PVL1DX3/lib/OpenAIAsync/Server/API/v1/ChatCompletion.pm 1;" p
|
OpenAIAsync::Server::API::v1::ChatCompletion .build/6o4PVL1DX3/lib/OpenAIAsync/Server/API/v1/ChatCompletion.pm 1;" p
|
||||||
|
@ -9951,10 +9935,6 @@ OpenAIAsync::Server::API::v1::ChatCompletion .build/bu5iQckAwH/blib/lib/OpenAIAs
|
||||||
OpenAIAsync::Server::API::v1::ChatCompletion .build/bu5iQckAwH/lib/OpenAIAsync/Server/API/v1/ChatCompletion.pm 1;" p
|
OpenAIAsync::Server::API::v1::ChatCompletion .build/bu5iQckAwH/lib/OpenAIAsync/Server/API/v1/ChatCompletion.pm 1;" p
|
||||||
OpenAIAsync::Server::API::v1::ChatCompletion .build/kBWSNkpY90/blib/lib/OpenAIAsync/Server/API/v1/ChatCompletion.pm 1;" p
|
OpenAIAsync::Server::API::v1::ChatCompletion .build/kBWSNkpY90/blib/lib/OpenAIAsync/Server/API/v1/ChatCompletion.pm 1;" p
|
||||||
OpenAIAsync::Server::API::v1::ChatCompletion .build/kBWSNkpY90/lib/OpenAIAsync/Server/API/v1/ChatCompletion.pm 1;" p
|
OpenAIAsync::Server::API::v1::ChatCompletion .build/kBWSNkpY90/lib/OpenAIAsync/Server/API/v1/ChatCompletion.pm 1;" p
|
||||||
OpenAIAsync::Server::API::v1::ChatCompletion .build/latest/blib/lib/OpenAIAsync/Server/API/v1/ChatCompletion.pm 1;" p
|
|
||||||
OpenAIAsync::Server::API::v1::ChatCompletion .build/latest/lib/OpenAIAsync/Server/API/v1/ChatCompletion.pm 1;" p
|
|
||||||
OpenAIAsync::Server::API::v1::ChatCompletion .build/previous/blib/lib/OpenAIAsync/Server/API/v1/ChatCompletion.pm 1;" p
|
|
||||||
OpenAIAsync::Server::API::v1::ChatCompletion .build/previous/lib/OpenAIAsync/Server/API/v1/ChatCompletion.pm 1;" p
|
|
||||||
OpenAIAsync::Server::API::v1::ChatCompletion .build/s8al1KxdoG/blib/lib/OpenAIAsync/Server/API/v1/ChatCompletion.pm 1;" p
|
OpenAIAsync::Server::API::v1::ChatCompletion .build/s8al1KxdoG/blib/lib/OpenAIAsync/Server/API/v1/ChatCompletion.pm 1;" p
|
||||||
OpenAIAsync::Server::API::v1::ChatCompletion .build/s8al1KxdoG/lib/OpenAIAsync/Server/API/v1/ChatCompletion.pm 1;" p
|
OpenAIAsync::Server::API::v1::ChatCompletion .build/s8al1KxdoG/lib/OpenAIAsync/Server/API/v1/ChatCompletion.pm 1;" p
|
||||||
OpenAIAsync::Server::API::v1::ChatCompletion lib/OpenAIAsync/Server/API/v1/ChatCompletion.pm 1;" p
|
OpenAIAsync::Server::API::v1::ChatCompletion lib/OpenAIAsync/Server/API/v1/ChatCompletion.pm 1;" p
|
||||||
|
@ -9976,10 +9956,6 @@ OpenAIAsync::Server::API::v1::Completions .build/bu5iQckAwH/blib/lib/OpenAIAsync
|
||||||
OpenAIAsync::Server::API::v1::Completions .build/bu5iQckAwH/lib/OpenAIAsync/Server/API/v1/Completions.pm 1;" p
|
OpenAIAsync::Server::API::v1::Completions .build/bu5iQckAwH/lib/OpenAIAsync/Server/API/v1/Completions.pm 1;" p
|
||||||
OpenAIAsync::Server::API::v1::Completions .build/kBWSNkpY90/blib/lib/OpenAIAsync/Server/API/v1/Completions.pm 1;" p
|
OpenAIAsync::Server::API::v1::Completions .build/kBWSNkpY90/blib/lib/OpenAIAsync/Server/API/v1/Completions.pm 1;" p
|
||||||
OpenAIAsync::Server::API::v1::Completions .build/kBWSNkpY90/lib/OpenAIAsync/Server/API/v1/Completions.pm 1;" p
|
OpenAIAsync::Server::API::v1::Completions .build/kBWSNkpY90/lib/OpenAIAsync/Server/API/v1/Completions.pm 1;" p
|
||||||
OpenAIAsync::Server::API::v1::Completions .build/latest/blib/lib/OpenAIAsync/Server/API/v1/Completions.pm 1;" p
|
|
||||||
OpenAIAsync::Server::API::v1::Completions .build/latest/lib/OpenAIAsync/Server/API/v1/Completions.pm 1;" p
|
|
||||||
OpenAIAsync::Server::API::v1::Completions .build/previous/blib/lib/OpenAIAsync/Server/API/v1/Completions.pm 1;" p
|
|
||||||
OpenAIAsync::Server::API::v1::Completions .build/previous/lib/OpenAIAsync/Server/API/v1/Completions.pm 1;" p
|
|
||||||
OpenAIAsync::Server::API::v1::Completions .build/s8al1KxdoG/blib/lib/OpenAIAsync/Server/API/v1/Completions.pm 1;" p
|
OpenAIAsync::Server::API::v1::Completions .build/s8al1KxdoG/blib/lib/OpenAIAsync/Server/API/v1/Completions.pm 1;" p
|
||||||
OpenAIAsync::Server::API::v1::Completions .build/s8al1KxdoG/lib/OpenAIAsync/Server/API/v1/Completions.pm 1;" p
|
OpenAIAsync::Server::API::v1::Completions .build/s8al1KxdoG/lib/OpenAIAsync/Server/API/v1/Completions.pm 1;" p
|
||||||
OpenAIAsync::Server::API::v1::Completions lib/OpenAIAsync/Server/API/v1/Completions.pm 1;" p
|
OpenAIAsync::Server::API::v1::Completions lib/OpenAIAsync/Server/API/v1/Completions.pm 1;" p
|
||||||
|
@ -10001,10 +9977,6 @@ OpenAIAsync::Server::API::v1::Embeddings .build/bu5iQckAwH/blib/lib/OpenAIAsync/
|
||||||
OpenAIAsync::Server::API::v1::Embeddings .build/bu5iQckAwH/lib/OpenAIAsync/Server/API/v1/Embeddings.pm 1;" p
|
OpenAIAsync::Server::API::v1::Embeddings .build/bu5iQckAwH/lib/OpenAIAsync/Server/API/v1/Embeddings.pm 1;" p
|
||||||
OpenAIAsync::Server::API::v1::Embeddings .build/kBWSNkpY90/blib/lib/OpenAIAsync/Server/API/v1/Embeddings.pm 1;" p
|
OpenAIAsync::Server::API::v1::Embeddings .build/kBWSNkpY90/blib/lib/OpenAIAsync/Server/API/v1/Embeddings.pm 1;" p
|
||||||
OpenAIAsync::Server::API::v1::Embeddings .build/kBWSNkpY90/lib/OpenAIAsync/Server/API/v1/Embeddings.pm 1;" p
|
OpenAIAsync::Server::API::v1::Embeddings .build/kBWSNkpY90/lib/OpenAIAsync/Server/API/v1/Embeddings.pm 1;" p
|
||||||
OpenAIAsync::Server::API::v1::Embeddings .build/latest/blib/lib/OpenAIAsync/Server/API/v1/Embeddings.pm 1;" p
|
|
||||||
OpenAIAsync::Server::API::v1::Embeddings .build/latest/lib/OpenAIAsync/Server/API/v1/Embeddings.pm 1;" p
|
|
||||||
OpenAIAsync::Server::API::v1::Embeddings .build/previous/blib/lib/OpenAIAsync/Server/API/v1/Embeddings.pm 1;" p
|
|
||||||
OpenAIAsync::Server::API::v1::Embeddings .build/previous/lib/OpenAIAsync/Server/API/v1/Embeddings.pm 1;" p
|
|
||||||
OpenAIAsync::Server::API::v1::Embeddings .build/s8al1KxdoG/blib/lib/OpenAIAsync/Server/API/v1/Embeddings.pm 1;" p
|
OpenAIAsync::Server::API::v1::Embeddings .build/s8al1KxdoG/blib/lib/OpenAIAsync/Server/API/v1/Embeddings.pm 1;" p
|
||||||
OpenAIAsync::Server::API::v1::Embeddings .build/s8al1KxdoG/lib/OpenAIAsync/Server/API/v1/Embeddings.pm 1;" p
|
OpenAIAsync::Server::API::v1::Embeddings .build/s8al1KxdoG/lib/OpenAIAsync/Server/API/v1/Embeddings.pm 1;" p
|
||||||
OpenAIAsync::Server::API::v1::Embeddings lib/OpenAIAsync/Server/API/v1/Embeddings.pm 1;" p
|
OpenAIAsync::Server::API::v1::Embeddings lib/OpenAIAsync/Server/API/v1/Embeddings.pm 1;" p
|
||||||
|
@ -10026,10 +9998,6 @@ OpenAIAsync::Server::API::v1::File .build/bu5iQckAwH/blib/lib/OpenAIAsync/Server
|
||||||
OpenAIAsync::Server::API::v1::File .build/bu5iQckAwH/lib/OpenAIAsync/Server/API/v1/File.pm 1;" p
|
OpenAIAsync::Server::API::v1::File .build/bu5iQckAwH/lib/OpenAIAsync/Server/API/v1/File.pm 1;" p
|
||||||
OpenAIAsync::Server::API::v1::File .build/kBWSNkpY90/blib/lib/OpenAIAsync/Server/API/v1/File.pm 1;" p
|
OpenAIAsync::Server::API::v1::File .build/kBWSNkpY90/blib/lib/OpenAIAsync/Server/API/v1/File.pm 1;" p
|
||||||
OpenAIAsync::Server::API::v1::File .build/kBWSNkpY90/lib/OpenAIAsync/Server/API/v1/File.pm 1;" p
|
OpenAIAsync::Server::API::v1::File .build/kBWSNkpY90/lib/OpenAIAsync/Server/API/v1/File.pm 1;" p
|
||||||
OpenAIAsync::Server::API::v1::File .build/latest/blib/lib/OpenAIAsync/Server/API/v1/File.pm 1;" p
|
|
||||||
OpenAIAsync::Server::API::v1::File .build/latest/lib/OpenAIAsync/Server/API/v1/File.pm 1;" p
|
|
||||||
OpenAIAsync::Server::API::v1::File .build/previous/blib/lib/OpenAIAsync/Server/API/v1/File.pm 1;" p
|
|
||||||
OpenAIAsync::Server::API::v1::File .build/previous/lib/OpenAIAsync/Server/API/v1/File.pm 1;" p
|
|
||||||
OpenAIAsync::Server::API::v1::File .build/s8al1KxdoG/blib/lib/OpenAIAsync/Server/API/v1/File.pm 1;" p
|
OpenAIAsync::Server::API::v1::File .build/s8al1KxdoG/blib/lib/OpenAIAsync/Server/API/v1/File.pm 1;" p
|
||||||
OpenAIAsync::Server::API::v1::File .build/s8al1KxdoG/lib/OpenAIAsync/Server/API/v1/File.pm 1;" p
|
OpenAIAsync::Server::API::v1::File .build/s8al1KxdoG/lib/OpenAIAsync/Server/API/v1/File.pm 1;" p
|
||||||
OpenAIAsync::Server::API::v1::File lib/OpenAIAsync/Server/API/v1/File.pm 1;" p
|
OpenAIAsync::Server::API::v1::File lib/OpenAIAsync/Server/API/v1/File.pm 1;" p
|
||||||
|
@ -10047,10 +10015,6 @@ OpenAIAsync::Server::API::v1::Image .build/ZeGti15sCn/blib/lib/OpenAIAsync/Serve
|
||||||
OpenAIAsync::Server::API::v1::Image .build/ZeGti15sCn/lib/OpenAIAsync/Server/API/v1/Image.pm 1;" p
|
OpenAIAsync::Server::API::v1::Image .build/ZeGti15sCn/lib/OpenAIAsync/Server/API/v1/Image.pm 1;" p
|
||||||
OpenAIAsync::Server::API::v1::Image .build/bu5iQckAwH/blib/lib/OpenAIAsync/Server/API/v1/Image.pm 1;" p
|
OpenAIAsync::Server::API::v1::Image .build/bu5iQckAwH/blib/lib/OpenAIAsync/Server/API/v1/Image.pm 1;" p
|
||||||
OpenAIAsync::Server::API::v1::Image .build/bu5iQckAwH/lib/OpenAIAsync/Server/API/v1/Image.pm 1;" p
|
OpenAIAsync::Server::API::v1::Image .build/bu5iQckAwH/lib/OpenAIAsync/Server/API/v1/Image.pm 1;" p
|
||||||
OpenAIAsync::Server::API::v1::Image .build/latest/blib/lib/OpenAIAsync/Server/API/v1/Image.pm 1;" p
|
|
||||||
OpenAIAsync::Server::API::v1::Image .build/latest/lib/OpenAIAsync/Server/API/v1/Image.pm 1;" p
|
|
||||||
OpenAIAsync::Server::API::v1::Image .build/previous/blib/lib/OpenAIAsync/Server/API/v1/Image.pm 1;" p
|
|
||||||
OpenAIAsync::Server::API::v1::Image .build/previous/lib/OpenAIAsync/Server/API/v1/Image.pm 1;" p
|
|
||||||
OpenAIAsync::Server::API::v1::Image .build/s8al1KxdoG/blib/lib/OpenAIAsync/Server/API/v1/Image.pm 1;" p
|
OpenAIAsync::Server::API::v1::Image .build/s8al1KxdoG/blib/lib/OpenAIAsync/Server/API/v1/Image.pm 1;" p
|
||||||
OpenAIAsync::Server::API::v1::Image .build/s8al1KxdoG/lib/OpenAIAsync/Server/API/v1/Image.pm 1;" p
|
OpenAIAsync::Server::API::v1::Image .build/s8al1KxdoG/lib/OpenAIAsync/Server/API/v1/Image.pm 1;" p
|
||||||
OpenAIAsync::Server::API::v1::Image lib/OpenAIAsync/Server/API/v1/Image.pm 1;" p
|
OpenAIAsync::Server::API::v1::Image lib/OpenAIAsync/Server/API/v1/Image.pm 1;" p
|
||||||
|
@ -10072,10 +10036,6 @@ OpenAIAsync::Server::API::v1::ModelList .build/bu5iQckAwH/blib/lib/OpenAIAsync/S
|
||||||
OpenAIAsync::Server::API::v1::ModelList .build/bu5iQckAwH/lib/OpenAIAsync/Server/API/v1/ModelList.pm 1;" p
|
OpenAIAsync::Server::API::v1::ModelList .build/bu5iQckAwH/lib/OpenAIAsync/Server/API/v1/ModelList.pm 1;" p
|
||||||
OpenAIAsync::Server::API::v1::ModelList .build/kBWSNkpY90/blib/lib/OpenAIAsync/Server/API/v1/ModelList.pm 1;" p
|
OpenAIAsync::Server::API::v1::ModelList .build/kBWSNkpY90/blib/lib/OpenAIAsync/Server/API/v1/ModelList.pm 1;" p
|
||||||
OpenAIAsync::Server::API::v1::ModelList .build/kBWSNkpY90/lib/OpenAIAsync/Server/API/v1/ModelList.pm 1;" p
|
OpenAIAsync::Server::API::v1::ModelList .build/kBWSNkpY90/lib/OpenAIAsync/Server/API/v1/ModelList.pm 1;" p
|
||||||
OpenAIAsync::Server::API::v1::ModelList .build/latest/blib/lib/OpenAIAsync/Server/API/v1/ModelList.pm 1;" p
|
|
||||||
OpenAIAsync::Server::API::v1::ModelList .build/latest/lib/OpenAIAsync/Server/API/v1/ModelList.pm 1;" p
|
|
||||||
OpenAIAsync::Server::API::v1::ModelList .build/previous/blib/lib/OpenAIAsync/Server/API/v1/ModelList.pm 1;" p
|
|
||||||
OpenAIAsync::Server::API::v1::ModelList .build/previous/lib/OpenAIAsync/Server/API/v1/ModelList.pm 1;" p
|
|
||||||
OpenAIAsync::Server::API::v1::ModelList .build/s8al1KxdoG/blib/lib/OpenAIAsync/Server/API/v1/ModelList.pm 1;" p
|
OpenAIAsync::Server::API::v1::ModelList .build/s8al1KxdoG/blib/lib/OpenAIAsync/Server/API/v1/ModelList.pm 1;" p
|
||||||
OpenAIAsync::Server::API::v1::ModelList .build/s8al1KxdoG/lib/OpenAIAsync/Server/API/v1/ModelList.pm 1;" p
|
OpenAIAsync::Server::API::v1::ModelList .build/s8al1KxdoG/lib/OpenAIAsync/Server/API/v1/ModelList.pm 1;" p
|
||||||
OpenAIAsync::Server::API::v1::ModelList lib/OpenAIAsync/Server/API/v1/ModelList.pm 1;" p
|
OpenAIAsync::Server::API::v1::ModelList lib/OpenAIAsync/Server/API/v1/ModelList.pm 1;" p
|
||||||
|
@ -10093,10 +10053,6 @@ OpenAIAsync::Server::API::v1::Moderations .build/ZeGti15sCn/blib/lib/OpenAIAsync
|
||||||
OpenAIAsync::Server::API::v1::Moderations .build/ZeGti15sCn/lib/OpenAIAsync/Server/API/v1/Moderations.pm 1;" p
|
OpenAIAsync::Server::API::v1::Moderations .build/ZeGti15sCn/lib/OpenAIAsync/Server/API/v1/Moderations.pm 1;" p
|
||||||
OpenAIAsync::Server::API::v1::Moderations .build/bu5iQckAwH/blib/lib/OpenAIAsync/Server/API/v1/Moderations.pm 1;" p
|
OpenAIAsync::Server::API::v1::Moderations .build/bu5iQckAwH/blib/lib/OpenAIAsync/Server/API/v1/Moderations.pm 1;" p
|
||||||
OpenAIAsync::Server::API::v1::Moderations .build/bu5iQckAwH/lib/OpenAIAsync/Server/API/v1/Moderations.pm 1;" p
|
OpenAIAsync::Server::API::v1::Moderations .build/bu5iQckAwH/lib/OpenAIAsync/Server/API/v1/Moderations.pm 1;" p
|
||||||
OpenAIAsync::Server::API::v1::Moderations .build/latest/blib/lib/OpenAIAsync/Server/API/v1/Moderations.pm 1;" p
|
|
||||||
OpenAIAsync::Server::API::v1::Moderations .build/latest/lib/OpenAIAsync/Server/API/v1/Moderations.pm 1;" p
|
|
||||||
OpenAIAsync::Server::API::v1::Moderations .build/previous/blib/lib/OpenAIAsync/Server/API/v1/Moderations.pm 1;" p
|
|
||||||
OpenAIAsync::Server::API::v1::Moderations .build/previous/lib/OpenAIAsync/Server/API/v1/Moderations.pm 1;" p
|
|
||||||
OpenAIAsync::Server::API::v1::Moderations .build/s8al1KxdoG/blib/lib/OpenAIAsync/Server/API/v1/Moderations.pm 1;" p
|
OpenAIAsync::Server::API::v1::Moderations .build/s8al1KxdoG/blib/lib/OpenAIAsync/Server/API/v1/Moderations.pm 1;" p
|
||||||
OpenAIAsync::Server::API::v1::Moderations .build/s8al1KxdoG/lib/OpenAIAsync/Server/API/v1/Moderations.pm 1;" p
|
OpenAIAsync::Server::API::v1::Moderations .build/s8al1KxdoG/lib/OpenAIAsync/Server/API/v1/Moderations.pm 1;" p
|
||||||
OpenAIAsync::Server::API::v1::Moderations lib/OpenAIAsync/Server/API/v1/Moderations.pm 1;" p
|
OpenAIAsync::Server::API::v1::Moderations lib/OpenAIAsync/Server/API/v1/Moderations.pm 1;" p
|
||||||
|
@ -10118,10 +10074,6 @@ OpenAIAsync::Types .build/bu5iQckAwH/blib/lib/OpenAIAsync/Types.pm 1;" p
|
||||||
OpenAIAsync::Types .build/bu5iQckAwH/lib/OpenAIAsync/Types.pm 1;" p
|
OpenAIAsync::Types .build/bu5iQckAwH/lib/OpenAIAsync/Types.pm 1;" p
|
||||||
OpenAIAsync::Types .build/kBWSNkpY90/blib/lib/OpenAIAsync/Types.pm 1;" p
|
OpenAIAsync::Types .build/kBWSNkpY90/blib/lib/OpenAIAsync/Types.pm 1;" p
|
||||||
OpenAIAsync::Types .build/kBWSNkpY90/lib/OpenAIAsync/Types.pm 1;" p
|
OpenAIAsync::Types .build/kBWSNkpY90/lib/OpenAIAsync/Types.pm 1;" p
|
||||||
OpenAIAsync::Types .build/latest/blib/lib/OpenAIAsync/Types.pm 1;" p
|
|
||||||
OpenAIAsync::Types .build/latest/lib/OpenAIAsync/Types.pm 1;" p
|
|
||||||
OpenAIAsync::Types .build/previous/blib/lib/OpenAIAsync/Types.pm 1;" p
|
|
||||||
OpenAIAsync::Types .build/previous/lib/OpenAIAsync/Types.pm 1;" p
|
|
||||||
OpenAIAsync::Types .build/s8al1KxdoG/blib/lib/OpenAIAsync/Types.pm 1;" p
|
OpenAIAsync::Types .build/s8al1KxdoG/blib/lib/OpenAIAsync/Types.pm 1;" p
|
||||||
OpenAIAsync::Types .build/s8al1KxdoG/lib/OpenAIAsync/Types.pm 1;" p
|
OpenAIAsync::Types .build/s8al1KxdoG/lib/OpenAIAsync/Types.pm 1;" p
|
||||||
OpenAIAsync::Types lib/OpenAIAsync/Types.pm 1;" p
|
OpenAIAsync::Types lib/OpenAIAsync/Types.pm 1;" p
|
||||||
|
@ -10143,10 +10095,6 @@ OpenAIAsync::Types::Requests .build/bu5iQckAwH/blib/lib/OpenAIAsync/Types/Reques
|
||||||
OpenAIAsync::Types::Requests .build/bu5iQckAwH/lib/OpenAIAsync/Types/Requests.pm 1;" p
|
OpenAIAsync::Types::Requests .build/bu5iQckAwH/lib/OpenAIAsync/Types/Requests.pm 1;" p
|
||||||
OpenAIAsync::Types::Requests .build/kBWSNkpY90/blib/lib/OpenAIAsync/Types/Requests.pm 1;" p
|
OpenAIAsync::Types::Requests .build/kBWSNkpY90/blib/lib/OpenAIAsync/Types/Requests.pm 1;" p
|
||||||
OpenAIAsync::Types::Requests .build/kBWSNkpY90/lib/OpenAIAsync/Types/Requests.pm 1;" p
|
OpenAIAsync::Types::Requests .build/kBWSNkpY90/lib/OpenAIAsync/Types/Requests.pm 1;" p
|
||||||
OpenAIAsync::Types::Requests .build/latest/blib/lib/OpenAIAsync/Types/Requests.pm 1;" p
|
|
||||||
OpenAIAsync::Types::Requests .build/latest/lib/OpenAIAsync/Types/Requests.pm 1;" p
|
|
||||||
OpenAIAsync::Types::Requests .build/previous/blib/lib/OpenAIAsync/Types/Requests.pm 1;" p
|
|
||||||
OpenAIAsync::Types::Requests .build/previous/lib/OpenAIAsync/Types/Requests.pm 1;" p
|
|
||||||
OpenAIAsync::Types::Requests .build/s8al1KxdoG/blib/lib/OpenAIAsync/Types/Requests.pm 1;" p
|
OpenAIAsync::Types::Requests .build/s8al1KxdoG/blib/lib/OpenAIAsync/Types/Requests.pm 1;" p
|
||||||
OpenAIAsync::Types::Requests .build/s8al1KxdoG/lib/OpenAIAsync/Types/Requests.pm 1;" p
|
OpenAIAsync::Types::Requests .build/s8al1KxdoG/lib/OpenAIAsync/Types/Requests.pm 1;" p
|
||||||
OpenAIAsync::Types::Requests lib/OpenAIAsync/Types/Requests.pm 1;" p
|
OpenAIAsync::Types::Requests lib/OpenAIAsync/Types/Requests.pm 1;" p
|
||||||
|
@ -10168,10 +10116,6 @@ OpenAIAsync::Types::Requests::ChatCompletion::Messages::Union .build/bu5iQckAwH/
|
||||||
OpenAIAsync::Types::Requests::ChatCompletion::Messages::Union .build/bu5iQckAwH/lib/OpenAIAsync/Types/Requests.pm 192;" p
|
OpenAIAsync::Types::Requests::ChatCompletion::Messages::Union .build/bu5iQckAwH/lib/OpenAIAsync/Types/Requests.pm 192;" p
|
||||||
OpenAIAsync::Types::Requests::ChatCompletion::Messages::Union .build/kBWSNkpY90/blib/lib/OpenAIAsync/Types/Requests.pm 192;" p
|
OpenAIAsync::Types::Requests::ChatCompletion::Messages::Union .build/kBWSNkpY90/blib/lib/OpenAIAsync/Types/Requests.pm 192;" p
|
||||||
OpenAIAsync::Types::Requests::ChatCompletion::Messages::Union .build/kBWSNkpY90/lib/OpenAIAsync/Types/Requests.pm 192;" p
|
OpenAIAsync::Types::Requests::ChatCompletion::Messages::Union .build/kBWSNkpY90/lib/OpenAIAsync/Types/Requests.pm 192;" p
|
||||||
OpenAIAsync::Types::Requests::ChatCompletion::Messages::Union .build/latest/blib/lib/OpenAIAsync/Types/Requests.pm 209;" p
|
|
||||||
OpenAIAsync::Types::Requests::ChatCompletion::Messages::Union .build/latest/lib/OpenAIAsync/Types/Requests.pm 209;" p
|
|
||||||
OpenAIAsync::Types::Requests::ChatCompletion::Messages::Union .build/previous/blib/lib/OpenAIAsync/Types/Requests.pm 209;" p
|
|
||||||
OpenAIAsync::Types::Requests::ChatCompletion::Messages::Union .build/previous/lib/OpenAIAsync/Types/Requests.pm 209;" p
|
|
||||||
OpenAIAsync::Types::Requests::ChatCompletion::Messages::Union .build/s8al1KxdoG/blib/lib/OpenAIAsync/Types/Requests.pm 192;" p
|
OpenAIAsync::Types::Requests::ChatCompletion::Messages::Union .build/s8al1KxdoG/blib/lib/OpenAIAsync/Types/Requests.pm 192;" p
|
||||||
OpenAIAsync::Types::Requests::ChatCompletion::Messages::Union .build/s8al1KxdoG/lib/OpenAIAsync/Types/Requests.pm 192;" p
|
OpenAIAsync::Types::Requests::ChatCompletion::Messages::Union .build/s8al1KxdoG/lib/OpenAIAsync/Types/Requests.pm 192;" p
|
||||||
OpenAIAsync::Types::Requests::ChatCompletion::Messages::Union lib/OpenAIAsync/Types/Requests.pm 209;" p
|
OpenAIAsync::Types::Requests::ChatCompletion::Messages::Union lib/OpenAIAsync/Types/Requests.pm 209;" p
|
||||||
|
@ -10193,10 +10137,6 @@ OpenAIAsync::Types::Requests::ChatCompletion::Messages::User::ContentUnion .buil
|
||||||
OpenAIAsync::Types::Requests::ChatCompletion::Messages::User::ContentUnion .build/bu5iQckAwH/lib/OpenAIAsync/Types/Requests.pm 115;" p
|
OpenAIAsync::Types::Requests::ChatCompletion::Messages::User::ContentUnion .build/bu5iQckAwH/lib/OpenAIAsync/Types/Requests.pm 115;" p
|
||||||
OpenAIAsync::Types::Requests::ChatCompletion::Messages::User::ContentUnion .build/kBWSNkpY90/blib/lib/OpenAIAsync/Types/Requests.pm 115;" p
|
OpenAIAsync::Types::Requests::ChatCompletion::Messages::User::ContentUnion .build/kBWSNkpY90/blib/lib/OpenAIAsync/Types/Requests.pm 115;" p
|
||||||
OpenAIAsync::Types::Requests::ChatCompletion::Messages::User::ContentUnion .build/kBWSNkpY90/lib/OpenAIAsync/Types/Requests.pm 115;" p
|
OpenAIAsync::Types::Requests::ChatCompletion::Messages::User::ContentUnion .build/kBWSNkpY90/lib/OpenAIAsync/Types/Requests.pm 115;" p
|
||||||
OpenAIAsync::Types::Requests::ChatCompletion::Messages::User::ContentUnion .build/latest/blib/lib/OpenAIAsync/Types/Requests.pm 127;" p
|
|
||||||
OpenAIAsync::Types::Requests::ChatCompletion::Messages::User::ContentUnion .build/latest/lib/OpenAIAsync/Types/Requests.pm 127;" p
|
|
||||||
OpenAIAsync::Types::Requests::ChatCompletion::Messages::User::ContentUnion .build/previous/blib/lib/OpenAIAsync/Types/Requests.pm 127;" p
|
|
||||||
OpenAIAsync::Types::Requests::ChatCompletion::Messages::User::ContentUnion .build/previous/lib/OpenAIAsync/Types/Requests.pm 127;" p
|
|
||||||
OpenAIAsync::Types::Requests::ChatCompletion::Messages::User::ContentUnion .build/s8al1KxdoG/blib/lib/OpenAIAsync/Types/Requests.pm 115;" p
|
OpenAIAsync::Types::Requests::ChatCompletion::Messages::User::ContentUnion .build/s8al1KxdoG/blib/lib/OpenAIAsync/Types/Requests.pm 115;" p
|
||||||
OpenAIAsync::Types::Requests::ChatCompletion::Messages::User::ContentUnion .build/s8al1KxdoG/lib/OpenAIAsync/Types/Requests.pm 115;" p
|
OpenAIAsync::Types::Requests::ChatCompletion::Messages::User::ContentUnion .build/s8al1KxdoG/lib/OpenAIAsync/Types/Requests.pm 115;" p
|
||||||
OpenAIAsync::Types::Requests::ChatCompletion::Messages::User::ContentUnion lib/OpenAIAsync/Types/Requests.pm 127;" p
|
OpenAIAsync::Types::Requests::ChatCompletion::Messages::User::ContentUnion lib/OpenAIAsync/Types/Requests.pm 127;" p
|
||||||
|
@ -10218,10 +10158,6 @@ OpenAIAsync::Types::Results .build/bu5iQckAwH/blib/lib/OpenAIAsync/Types/Results
|
||||||
OpenAIAsync::Types::Results .build/bu5iQckAwH/lib/OpenAIAsync/Types/Results.pm 1;" p
|
OpenAIAsync::Types::Results .build/bu5iQckAwH/lib/OpenAIAsync/Types/Results.pm 1;" p
|
||||||
OpenAIAsync::Types::Results .build/kBWSNkpY90/blib/lib/OpenAIAsync/Types/Results.pm 1;" p
|
OpenAIAsync::Types::Results .build/kBWSNkpY90/blib/lib/OpenAIAsync/Types/Results.pm 1;" p
|
||||||
OpenAIAsync::Types::Results .build/kBWSNkpY90/lib/OpenAIAsync/Types/Results.pm 1;" p
|
OpenAIAsync::Types::Results .build/kBWSNkpY90/lib/OpenAIAsync/Types/Results.pm 1;" p
|
||||||
OpenAIAsync::Types::Results .build/latest/blib/lib/OpenAIAsync/Types/Results.pm 1;" p
|
|
||||||
OpenAIAsync::Types::Results .build/latest/lib/OpenAIAsync/Types/Results.pm 1;" p
|
|
||||||
OpenAIAsync::Types::Results .build/previous/blib/lib/OpenAIAsync/Types/Results.pm 1;" p
|
|
||||||
OpenAIAsync::Types::Results .build/previous/lib/OpenAIAsync/Types/Results.pm 1;" p
|
|
||||||
OpenAIAsync::Types::Results .build/s8al1KxdoG/blib/lib/OpenAIAsync/Types/Results.pm 1;" p
|
OpenAIAsync::Types::Results .build/s8al1KxdoG/blib/lib/OpenAIAsync/Types/Results.pm 1;" p
|
||||||
OpenAIAsync::Types::Results .build/s8al1KxdoG/lib/OpenAIAsync/Types/Results.pm 1;" p
|
OpenAIAsync::Types::Results .build/s8al1KxdoG/lib/OpenAIAsync/Types/Results.pm 1;" p
|
||||||
OpenAIAsync::Types::Results lib/OpenAIAsync/Types/Results.pm 1;" p
|
OpenAIAsync::Types::Results lib/OpenAIAsync/Types/Results.pm 1;" p
|
||||||
|
@ -10243,10 +10179,6 @@ OpenAIAsync::Types::Shared .build/bu5iQckAwH/blib/lib/OpenAIAsync/Types/Shared.p
|
||||||
OpenAIAsync::Types::Shared .build/bu5iQckAwH/lib/OpenAIAsync/Types/Shared.pm 1;" p
|
OpenAIAsync::Types::Shared .build/bu5iQckAwH/lib/OpenAIAsync/Types/Shared.pm 1;" p
|
||||||
OpenAIAsync::Types::Shared .build/kBWSNkpY90/blib/lib/OpenAIAsync/Types/Shared.pm 1;" p
|
OpenAIAsync::Types::Shared .build/kBWSNkpY90/blib/lib/OpenAIAsync/Types/Shared.pm 1;" p
|
||||||
OpenAIAsync::Types::Shared .build/kBWSNkpY90/lib/OpenAIAsync/Types/Shared.pm 1;" p
|
OpenAIAsync::Types::Shared .build/kBWSNkpY90/lib/OpenAIAsync/Types/Shared.pm 1;" p
|
||||||
OpenAIAsync::Types::Shared .build/latest/blib/lib/OpenAIAsync/Types/Shared.pm 1;" p
|
|
||||||
OpenAIAsync::Types::Shared .build/latest/lib/OpenAIAsync/Types/Shared.pm 1;" p
|
|
||||||
OpenAIAsync::Types::Shared .build/previous/blib/lib/OpenAIAsync/Types/Shared.pm 1;" p
|
|
||||||
OpenAIAsync::Types::Shared .build/previous/lib/OpenAIAsync/Types/Shared.pm 1;" p
|
|
||||||
OpenAIAsync::Types::Shared .build/s8al1KxdoG/blib/lib/OpenAIAsync/Types/Shared.pm 1;" p
|
OpenAIAsync::Types::Shared .build/s8al1KxdoG/blib/lib/OpenAIAsync/Types/Shared.pm 1;" p
|
||||||
OpenAIAsync::Types::Shared .build/s8al1KxdoG/lib/OpenAIAsync/Types/Shared.pm 1;" p
|
OpenAIAsync::Types::Shared .build/s8al1KxdoG/lib/OpenAIAsync/Types/Shared.pm 1;" p
|
||||||
OpenAIAsync::Types::Shared lib/OpenAIAsync/Types/Shared.pm 1;" p
|
OpenAIAsync::Types::Shared lib/OpenAIAsync/Types/Shared.pm 1;" p
|
||||||
|
@ -28326,14 +28258,6 @@ new .build/kBWSNkpY90/blib/lib/OpenAIAsync/Types/Requests.pm 118;" s
|
||||||
new .build/kBWSNkpY90/blib/lib/OpenAIAsync/Types/Requests.pm 195;" s
|
new .build/kBWSNkpY90/blib/lib/OpenAIAsync/Types/Requests.pm 195;" s
|
||||||
new .build/kBWSNkpY90/lib/OpenAIAsync/Types/Requests.pm 118;" s
|
new .build/kBWSNkpY90/lib/OpenAIAsync/Types/Requests.pm 118;" s
|
||||||
new .build/kBWSNkpY90/lib/OpenAIAsync/Types/Requests.pm 195;" s
|
new .build/kBWSNkpY90/lib/OpenAIAsync/Types/Requests.pm 195;" s
|
||||||
new .build/latest/blib/lib/OpenAIAsync/Types/Requests.pm 130;" s
|
|
||||||
new .build/latest/blib/lib/OpenAIAsync/Types/Requests.pm 212;" s
|
|
||||||
new .build/latest/lib/OpenAIAsync/Types/Requests.pm 130;" s
|
|
||||||
new .build/latest/lib/OpenAIAsync/Types/Requests.pm 212;" s
|
|
||||||
new .build/previous/blib/lib/OpenAIAsync/Types/Requests.pm 130;" s
|
|
||||||
new .build/previous/blib/lib/OpenAIAsync/Types/Requests.pm 212;" s
|
|
||||||
new .build/previous/lib/OpenAIAsync/Types/Requests.pm 130;" s
|
|
||||||
new .build/previous/lib/OpenAIAsync/Types/Requests.pm 212;" s
|
|
||||||
new .build/s8al1KxdoG/blib/lib/OpenAIAsync/Types/Requests.pm 118;" s
|
new .build/s8al1KxdoG/blib/lib/OpenAIAsync/Types/Requests.pm 118;" s
|
||||||
new .build/s8al1KxdoG/blib/lib/OpenAIAsync/Types/Requests.pm 195;" s
|
new .build/s8al1KxdoG/blib/lib/OpenAIAsync/Types/Requests.pm 195;" s
|
||||||
new .build/s8al1KxdoG/lib/OpenAIAsync/Types/Requests.pm 118;" s
|
new .build/s8al1KxdoG/lib/OpenAIAsync/Types/Requests.pm 118;" s
|
||||||
|
@ -29146,10 +29070,6 @@ ontent::new .build/bu5iQckAwH/blib/lib/OpenAIAsync/Types/Requests.pm 195;" s
|
||||||
ontent::new .build/bu5iQckAwH/lib/OpenAIAsync/Types/Requests.pm 195;" s
|
ontent::new .build/bu5iQckAwH/lib/OpenAIAsync/Types/Requests.pm 195;" s
|
||||||
ontent::new .build/kBWSNkpY90/blib/lib/OpenAIAsync/Types/Requests.pm 195;" s
|
ontent::new .build/kBWSNkpY90/blib/lib/OpenAIAsync/Types/Requests.pm 195;" s
|
||||||
ontent::new .build/kBWSNkpY90/lib/OpenAIAsync/Types/Requests.pm 195;" s
|
ontent::new .build/kBWSNkpY90/lib/OpenAIAsync/Types/Requests.pm 195;" s
|
||||||
ontent::new .build/latest/blib/lib/OpenAIAsync/Types/Requests.pm 212;" s
|
|
||||||
ontent::new .build/latest/lib/OpenAIAsync/Types/Requests.pm 212;" s
|
|
||||||
ontent::new .build/previous/blib/lib/OpenAIAsync/Types/Requests.pm 212;" s
|
|
||||||
ontent::new .build/previous/lib/OpenAIAsync/Types/Requests.pm 212;" s
|
|
||||||
ontent::new .build/s8al1KxdoG/blib/lib/OpenAIAsync/Types/Requests.pm 195;" s
|
ontent::new .build/s8al1KxdoG/blib/lib/OpenAIAsync/Types/Requests.pm 195;" s
|
||||||
ontent::new .build/s8al1KxdoG/lib/OpenAIAsync/Types/Requests.pm 195;" s
|
ontent::new .build/s8al1KxdoG/lib/OpenAIAsync/Types/Requests.pm 195;" s
|
||||||
ontent::new lib/OpenAIAsync/Types/Requests.pm 212;" s
|
ontent::new lib/OpenAIAsync/Types/Requests.pm 212;" s
|
||||||
|
@ -31808,10 +31728,6 @@ y::new .build/bu5iQckAwH/blib/lib/OpenAIAsync/Types/Requests.pm 118;" s
|
||||||
y::new .build/bu5iQckAwH/lib/OpenAIAsync/Types/Requests.pm 118;" s
|
y::new .build/bu5iQckAwH/lib/OpenAIAsync/Types/Requests.pm 118;" s
|
||||||
y::new .build/kBWSNkpY90/blib/lib/OpenAIAsync/Types/Requests.pm 118;" s
|
y::new .build/kBWSNkpY90/blib/lib/OpenAIAsync/Types/Requests.pm 118;" s
|
||||||
y::new .build/kBWSNkpY90/lib/OpenAIAsync/Types/Requests.pm 118;" s
|
y::new .build/kBWSNkpY90/lib/OpenAIAsync/Types/Requests.pm 118;" s
|
||||||
y::new .build/latest/blib/lib/OpenAIAsync/Types/Requests.pm 130;" s
|
|
||||||
y::new .build/latest/lib/OpenAIAsync/Types/Requests.pm 130;" s
|
|
||||||
y::new .build/previous/blib/lib/OpenAIAsync/Types/Requests.pm 130;" s
|
|
||||||
y::new .build/previous/lib/OpenAIAsync/Types/Requests.pm 130;" s
|
|
||||||
y::new .build/s8al1KxdoG/blib/lib/OpenAIAsync/Types/Requests.pm 118;" s
|
y::new .build/s8al1KxdoG/blib/lib/OpenAIAsync/Types/Requests.pm 118;" s
|
||||||
y::new .build/s8al1KxdoG/lib/OpenAIAsync/Types/Requests.pm 118;" s
|
y::new .build/s8al1KxdoG/lib/OpenAIAsync/Types/Requests.pm 118;" s
|
||||||
y::new lib/OpenAIAsync/Types/Requests.pm 130;" s
|
y::new lib/OpenAIAsync/Types/Requests.pm 130;" s
|
||||||
|
|
350
Client.pod
350
Client.pod
|
@ -1,350 +0,0 @@
|
||||||
package OpenAIAsync::Client;
|
|
||||||
|
|
||||||
use v5.36.0;
|
|
||||||
use Object::Pad;
|
|
||||||
use IO::Async::SSL; # We're not directly using it but I want to enforce that we pull it in when detecting dependencies, since openai itself is always https
|
|
||||||
use Future::AsyncAwait;
|
|
||||||
use IO::Async;
|
|
||||||
|
|
||||||
use OpenAIAsync::Types::Results;
|
|
||||||
use OpenAIAsync::Types::Requests;
|
|
||||||
|
|
||||||
our $VERSION = '0.02';
|
|
||||||
|
|
||||||
# ABSTRACT: Async client for OpenAI style REST API for various AI systems (LLMs, Images, Video, etc.)
|
|
||||||
|
|
||||||
=pod
|
|
||||||
|
|
||||||
=head1 NAME
|
|
||||||
|
|
||||||
OpenAIAsync::Client - IO::Async based client for OpenAI compatible APIs
|
|
||||||
|
|
||||||
=head1 SYNOPSIS
|
|
||||||
|
|
||||||
use IO::Async::Loop;
|
|
||||||
use OpenAIAsync::Client;
|
|
||||||
|
|
||||||
my $loop = IO::Async::Loop->new();
|
|
||||||
|
|
||||||
my $client = OpenAIAsync::Client->new();
|
|
||||||
|
|
||||||
$loop->add($client);
|
|
||||||
|
|
||||||
my $output = await $client->chat({
|
|
||||||
model => "gpt-3.5-turbo",
|
|
||||||
messages => [
|
|
||||||
{
|
|
||||||
role => "system",
|
|
||||||
content => "You are a helpful assistant that tells fanciful stories"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
role => "user",
|
|
||||||
content => "Tell me a story of two princesses, Judy and Emmy. Judy is 8 and Emmy is 2."
|
|
||||||
}
|
|
||||||
],
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
max_tokens => 1024,
|
|
||||||
})->get();
|
|
||||||
|
|
||||||
# $output is now an OpenAIAsync::Type::Results::ChatCompletion
|
|
||||||
|
|
||||||
=head1 THEORY OF OPERATION
|
|
||||||
|
|
||||||
This module implements the L<IO::Async::Notifier> interface, this means that you create a new client and then call C<< $loop->add($client) >>
|
|
||||||
this casues all L<Future>s that are created to be part of the L<IO::Async::Loop> of your program. This way when you call C<await> on any method
|
|
||||||
it will properly suspend the execution of your program and do something else concurrently (probably waiting on requests).
|
|
||||||
|
|
||||||
=head1 Methods
|
|
||||||
|
|
||||||
=head2 new()
|
|
||||||
|
|
||||||
Create a new OpenAIAsync::Client. You'll need to register the client with C<< $loop->add($client) >> after creation.
|
|
||||||
|
|
||||||
=head3 PARAMETERS
|
|
||||||
|
|
||||||
=over 4
|
|
||||||
|
|
||||||
=item * api_base (optional)
|
|
||||||
|
|
||||||
Base url of the service to connect to. Defaults to C<https://api.openai.com/v1>. This should be a value pointing to something that
|
|
||||||
implements the v1 OpenAI API, which for OobaBooga's text-generation-webui might be something like C<http://localhost:5000/v1>.
|
|
||||||
|
|
||||||
It will also be pulled from the environment variable C<OPENAI_API_BASE> in the same fashion that the OpenAI libraries in other languages will do.
|
|
||||||
|
|
||||||
=item * api_key (required)
|
|
||||||
|
|
||||||
Api key that will be passed to the service you call. This gets passed as a header C<Authorization: Api-Key ....> to the service in all of the REST
|
|
||||||
calls. This should be kept secret as it can be used to make all kinds of calls to paid services.
|
|
||||||
|
|
||||||
It will also be pulled from the environment variable C<OPENAI_API_KEY> in the same fashion that the OpenAI libraries in other languages will do.
|
|
||||||
|
|
||||||
=item * api_org_name (optional)
|
|
||||||
|
|
||||||
A name for the organization that's making the call. This can be used by OpenAI to help identify which part of your company is
|
|
||||||
making any specific request, and I believe to help itemize billing and other tasks.
|
|
||||||
|
|
||||||
=item * http_user_agent (optional)
|
|
||||||
|
|
||||||
Set the useragent that's used to contact the API service. Defaults to
|
|
||||||
|
|
||||||
C<< __PACKAGE__." Perl/$VERSION (Net::Async::HTTP/".$Net::Async::HTTP::VERSION." IO::Async/".$IO::Async::VERSION." Perl/$])" >>
|
|
||||||
|
|
||||||
The default is to make it easier to debug if we ever see weird issues with the requests being generated but it does reveal some information
|
|
||||||
about the code environment.
|
|
||||||
|
|
||||||
=item * http_max_in_flight (optional)
|
|
||||||
|
|
||||||
How many requests should we allow to happen at once. Increasing this will increase the allowed parallel requests, but that can also
|
|
||||||
allow you to make too many requests and cost more in API calls.
|
|
||||||
|
|
||||||
Defaults to 2
|
|
||||||
|
|
||||||
=item * http_max_connections_per_host (optional)
|
|
||||||
|
|
||||||
TODO, I'm thinking this one will get dropped. Effectively since we're only ever connecting to one server this ends up functioning the same as the above parameter.
|
|
||||||
|
|
||||||
Defaults to 2
|
|
||||||
|
|
||||||
=item * http_max_redirects (optional)
|
|
||||||
|
|
||||||
How many redirects to allow. The official OpenAI API never sends redirects (for now) but for self hosted or other custom setups this might happen and should be handled correctly
|
|
||||||
|
|
||||||
Defaults to 3
|
|
||||||
|
|
||||||
=item * http_timeout (optional)
|
|
||||||
|
|
||||||
How long to wait on any given request to start.
|
|
||||||
|
|
||||||
Defaults to 120 seconds.
|
|
||||||
|
|
||||||
=item * http_stall_timeout (optional)
|
|
||||||
|
|
||||||
How long to wait on any given request to decide if it's been stalled. If a request starts responding and then stops part way through, this is how we'll treat it as stalled and time it out
|
|
||||||
|
|
||||||
Defaults to 600s (10 minutes). This is unlikely to happen except for a malfunctioning inference service since once generation starts to return it'll almost certainly finish.
|
|
||||||
|
|
||||||
=item * http_other (optional)
|
|
||||||
|
|
||||||
A hash ref that gets passed as additional parameters to L<Net::Async::HTTP>'s constructor. All values will be overriden by the ones above, so if a parameter is supported use those first.
|
|
||||||
|
|
||||||
=back
|
|
||||||
|
|
||||||
=head2 completion (deprecated)
|
|
||||||
|
|
||||||
Create a request for completion, this takes a prompt and returns a response. See L<OpenAIAsync::Types::Request::Completion> for exact details.
|
|
||||||
|
|
||||||
This particular API has been deprecated by OpenAI in favor of doing everything through the chat completion api below. However it is still supported
|
|
||||||
by OpenAI and compatible servers as it's a very simple interface to use
|
|
||||||
|
|
||||||
=head2 chat
|
|
||||||
|
|
||||||
Create a request for the chat completion api. This takes a series of messages and returns a new chat response. See L<OpenAIAsync::Types::Request::ChatCompletion> for exact details.
|
|
||||||
|
|
||||||
This API takes a series of messages from different agent sources and then responds as the assistant agent. A typical interaction is to start with a C<"system"> agent message
|
|
||||||
to set the context for the assistant, followed by the C<"user"> agent type for the user's request. You'll then get the response from the assistant agent to give to the user.
|
|
||||||
|
|
||||||
To continue the chat, you'd then take the new message and insert it into the list of messages as part of the chat and make a new request with the user's response. I'll be creating
|
|
||||||
a new module that uses this API and helps manage the chat in an easier manner with a few helper functions.
|
|
||||||
|
|
||||||
=head2 embedding
|
|
||||||
|
|
||||||
Create a request for calculating the embedding of an input. This takes a bit of text and returns a gigantic list of numbers, see L<OpenAIAsync::Types::Request::Embedding> for exact details.
|
|
||||||
|
|
||||||
These values are a bit difficult to explain how they work, but essentially you get a mathematical object, a vector, that describes the contents of the input as
|
|
||||||
a point in an N-dimensional space (typically 768 or 1536 dimensions). The dimensions themselves really don't have any inherit mathematical meaning but are instead relative to one-another
|
|
||||||
from the training data of the embedding model.
|
|
||||||
|
|
||||||
You'll want to take the vector and store it in a database that supports vector operations, like PostgreSQL with the L<pgvector|https://github.com/pgvector/pgvector> extension.
|
|
||||||
|
|
||||||
=head2 image_generate
|
|
||||||
|
|
||||||
Unimplemented, but once present will be used to generate images with Dall-E (or for self hosted, stable diffusion).
|
|
||||||
|
|
||||||
=head2 text_to_speech
|
|
||||||
|
|
||||||
Unimplemented, but can be used to turn text to speech using whatever algorithms/models are supported.
|
|
||||||
|
|
||||||
=head2 speech_to_text
|
|
||||||
|
|
||||||
Unimplemented. The opposite of the above.
|
|
||||||
|
|
||||||
=head2 vision
|
|
||||||
|
|
||||||
Unimplemented, I've not investigated this one much yet but I believe it's to get a description of an image and it's contents.
|
|
||||||
|
|
||||||
=head2 Missing apis
|
|
||||||
|
|
||||||
At least some for getting the list of models and some other meta information, those will be added next after I get some more documentation written
|
|
||||||
|
|
||||||
=head1 See Also
|
|
||||||
|
|
||||||
L<IO::Async>, L<Future::AsyncAwait>, L<Net::Async::HTTP>
|
|
||||||
|
|
||||||
=head1 License
|
|
||||||
|
|
||||||
Artistic 2.0
|
|
||||||
|
|
||||||
=head1 Author
|
|
||||||
|
|
||||||
Ryan Voots, ... etc.
|
|
||||||
|
|
||||||
=cut
|
|
||||||
|
|
||||||
class OpenAIAsync::Client :repr(HASH) :isa(IO::Async::Notifier) :strict(params) {
|
|
||||||
use JSON::MaybeXS qw//;
|
|
||||||
use Net::Async::HTTP;
|
|
||||||
use Feature::Compat::Try;
|
|
||||||
use URI;
|
|
||||||
|
|
||||||
field $_json = JSON::MaybeXS->new(utf8 => 1, convert_blessed => 1);
|
|
||||||
field $http;
|
|
||||||
|
|
||||||
# TODO document these directly, other options gets mixed in BEFORE all of these
|
|
||||||
field $_http_max_in_flight :param(http_max_in_flight) = 2;
|
|
||||||
field $_http_max_redirects :param(http_max_redirects) = 3;
|
|
||||||
field $_http_max_connections_per_host :param(http_max_connections_per_host) = 2;
|
|
||||||
field $_http_timeout :param(http_timeout) = 120; # My personal server is kinda slow, use a generous default
|
|
||||||
field $_http_stall_timeout :param(http_stall_timeout) = 600; # generous for my slow personal server
|
|
||||||
field $_http_other :param(http_other_options) = {};
|
|
||||||
field $_http_user_agent :param(http_user_agent) = __PACKAGE__." Perl/$VERSION (Net::Async::HTTP/".$Net::Async::HTTP::VERSION." IO::Async/".$IO::Async::VERSION." Perl/$])";
|
|
||||||
|
|
||||||
field $api_base :param(api_base) = $ENV{OPENAI_API_BASE} // "https://api.openai.com/v1";
|
|
||||||
field $api_key :param(api_key) = $ENV{OPENAI_API_KEY};
|
|
||||||
|
|
||||||
field $api_org_name :param(api_org_name) = undef;
|
|
||||||
|
|
||||||
field $io_async_notifier_params :param = undef;
|
|
||||||
|
|
||||||
method configure(%params) {
|
|
||||||
# We require them to go this way, so that there is no conflicts
|
|
||||||
# TODO document this
|
|
||||||
my %io_async_params = ($params{io_async_notifier_params} // {})->%*;
|
|
||||||
IO::Async::Notifier::configure($self, %io_async_params);
|
|
||||||
}
|
|
||||||
|
|
||||||
method __make_http() {
|
|
||||||
die "Missing API Key for OpenAI" unless $api_key;
|
|
||||||
|
|
||||||
return Net::Async::HTTP->new(
|
|
||||||
$_http_other->%*,
|
|
||||||
user_agent => "SNN OpenAI Client 1.0",
|
|
||||||
+headers => {
|
|
||||||
"Authorization" => "Bearer $api_key",
|
|
||||||
"Content-Type" => "application/json",
|
|
||||||
$api_org_name ? (
|
|
||||||
'OpenAI-Organization' => $api_org_name,
|
|
||||||
) : ()
|
|
||||||
},
|
|
||||||
max_redirects => $_http_max_redirects,
|
|
||||||
max_connections_per_host => $_http_max_connections_per_host,
|
|
||||||
max_in_flight => $_http_max_in_flight,
|
|
||||||
timeout => $_http_timeout,
|
|
||||||
stall_timeout => $_http_stall_timeout,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
ADJUST {
|
|
||||||
$http = $self->__make_http;
|
|
||||||
|
|
||||||
$api_base =~ s|/$||; # trim an accidental final / since we will be putting it on the endpoints
|
|
||||||
}
|
|
||||||
|
|
||||||
async method _make_request($endpoint, $data) {
|
|
||||||
my $json = $_json->encode($data);
|
|
||||||
|
|
||||||
my $url = URI->new($api_base . $endpoint );
|
|
||||||
|
|
||||||
my $result = await $http->do_request(
|
|
||||||
uri => $url,
|
|
||||||
method => "POST",
|
|
||||||
content => $json,
|
|
||||||
content_type => 'application/json',
|
|
||||||
);
|
|
||||||
|
|
||||||
if ($result->is_success) {
|
|
||||||
my $json = $result->decoded_content;
|
|
||||||
my $out_data = $_json->decode($json);
|
|
||||||
|
|
||||||
return $out_data;
|
|
||||||
} else {
|
|
||||||
die "Failure in talking to OpenAI service: ".$result->status_line.": ".$result->decoded_content;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
method _add_to_loop($loop) {
|
|
||||||
$loop->add($http);
|
|
||||||
}
|
|
||||||
|
|
||||||
method _remove_from_loop($loop) {
|
|
||||||
$loop->remove($http);
|
|
||||||
$http = $self->__make_http; # overkill? want to make sure we have a clean one
|
|
||||||
}
|
|
||||||
|
|
||||||
# This is the legacy completion api
|
|
||||||
async method completion($input) {
|
|
||||||
|
|
||||||
if (ref($input) eq 'HASH') {
|
|
||||||
$input = OpenAIAsync::Types::Requests::Completion->new($input->%*);
|
|
||||||
} elsif (ref($input) eq 'OpenAIAsync::Types::Requests::Completion') {
|
|
||||||
# dummy, nothing to do
|
|
||||||
} else {
|
|
||||||
die "Unsupported input type [".ref($input)."]";
|
|
||||||
}
|
|
||||||
|
|
||||||
my $data = await $self->_make_request($input->_endpoint(), $input);
|
|
||||||
|
|
||||||
my $type_result = OpenAIAsync::Types::Results::Completion->new($data->%*);
|
|
||||||
|
|
||||||
return $type_result;
|
|
||||||
}
|
|
||||||
|
|
||||||
async method chat($input) {
|
|
||||||
if (ref($input) eq 'HASH') {
|
|
||||||
$input = OpenAIAsync::Types::Requests::ChatCompletion->new($input->%*);
|
|
||||||
} elsif (ref($input) eq 'OpenAIAsync::Types::Requests::ChatCompletion') {
|
|
||||||
# dummy, nothing to do
|
|
||||||
} else {
|
|
||||||
die "Unsupported input type [".ref($input)."]";
|
|
||||||
}
|
|
||||||
|
|
||||||
my $data = await $self->_make_request($input->_endpoint(), $input);
|
|
||||||
|
|
||||||
my $type_result = OpenAIAsync::Types::Results::ChatCompletion->new($data->%*);
|
|
||||||
|
|
||||||
return $type_result;
|
|
||||||
}
|
|
||||||
|
|
||||||
async method embedding($input) {
|
|
||||||
if (ref($input) eq 'HASH') {
|
|
||||||
$input = OpenAIAsync::Types::Requests::Embedding->new($input->%*);
|
|
||||||
} elsif (ref($input) eq 'OpenAIAsync::Types::Requests::Embedding') {
|
|
||||||
# dummy, nothing to do
|
|
||||||
} else {
|
|
||||||
die "Unsupported input type [".ref($input)."]";
|
|
||||||
}
|
|
||||||
|
|
||||||
my $data = await $self->_make_request($input->_endpoint(), $input);
|
|
||||||
|
|
||||||
my $type_result = OpenAIAsync::Types::Results::Embedding->new($data->%*);
|
|
||||||
|
|
||||||
return $type_result;
|
|
||||||
}
|
|
||||||
|
|
||||||
async method image_generate($input) {
|
|
||||||
...
|
|
||||||
}
|
|
||||||
|
|
||||||
async method text_to_speech($text) {
|
|
||||||
...
|
|
||||||
}
|
|
||||||
|
|
||||||
async method speech_to_text($sound_data) {
|
|
||||||
...
|
|
||||||
}
|
|
||||||
|
|
||||||
async method vision($image, $prompt) {
|
|
||||||
...
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -192,7 +192,8 @@ Ryan Voots, ... etc.
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
class OpenAIAsync::Client :repr(HASH) :isa(IO::Async::Notifier) :strict(params) {
|
class OpenAIAsync::Client :repr(HASH) :strict(params) {
|
||||||
|
inherit IO::Async::Notifier;
|
||||||
use JSON::MaybeXS qw//;
|
use JSON::MaybeXS qw//;
|
||||||
use Net::Async::HTTP;
|
use Net::Async::HTTP;
|
||||||
use Feature::Compat::Try;
|
use Feature::Compat::Try;
|
||||||
|
|
|
@ -128,7 +128,7 @@ terminator for TLS connections
|
||||||
},
|
},
|
||||||
...
|
...
|
||||||
]
|
]
|
||||||
|
|
||||||
=head2 async auth_check($key, $ctx, $http_req)
|
=head2 async auth_check($key, $ctx, $http_req)
|
||||||
|
|
||||||
This method requres async keyword.
|
This method requres async keyword.
|
||||||
|
@ -207,7 +207,9 @@ Ryan Voots, ... etc.
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
class OpenAIAsync::Server :repr(HASH) :isa(IO::Async::Notifier) :strict(params) {
|
class OpenAIAsync::Server :repr(HASH) :strict(params) {
|
||||||
|
inherit IO::Async::Notifier;
|
||||||
|
|
||||||
use JSON::MaybeXS qw//;
|
use JSON::MaybeXS qw//;
|
||||||
use Net::Async::HTTP::Server;
|
use Net::Async::HTTP::Server;
|
||||||
use Feature::Compat::Try;
|
use Feature::Compat::Try;
|
||||||
|
|
|
@ -7,7 +7,10 @@ use Object::PadX::Role::AutoJSON;
|
||||||
use Object::Pad::ClassAttr::Struct;
|
use Object::Pad::ClassAttr::Struct;
|
||||||
|
|
||||||
# Base role for all the types to simplify things later
|
# Base role for all the types to simplify things later
|
||||||
role OpenAIAsync::Types::Base :does(Object::PadX::Role::AutoJSON) :does(Object::PadX::Role::AutoMarshal) :Struct {
|
role OpenAIAsync::Types::Base :Struct {
|
||||||
|
apply Object::PadX::Role::AutoJSON;
|
||||||
|
apply Object::PadX::Role::AutoMarshal;
|
||||||
|
|
||||||
use JSON::MaybeXS qw//;
|
use JSON::MaybeXS qw//;
|
||||||
|
|
||||||
our $_json = JSON::MaybeXS->new(utf8 => 1, convert_blessed => 1);
|
our $_json = JSON::MaybeXS->new(utf8 => 1, convert_blessed => 1);
|
||||||
|
@ -18,7 +21,10 @@ role OpenAIAsync::Types::Base :does(Object::PadX::Role::AutoJSON) :does(Object::
|
||||||
}
|
}
|
||||||
|
|
||||||
# Keep the JSON role stuff here, I might use it to annotate encodings of some non-json fields? not sure
|
# Keep the JSON role stuff here, I might use it to annotate encodings of some non-json fields? not sure
|
||||||
role OpenAIAsync::Types::BaseFormEncoding :does(Object::PadX::Role::AutoJSON) :does(Object::PadX::Role::AutoMarshal) :Struct {
|
role OpenAIAsync::Types::BaseFormEncoding :Struct {
|
||||||
|
apply Object::PadX::Role::AutoJSON;
|
||||||
|
apply Object::PadX::Role::AutoMarshal;
|
||||||
|
|
||||||
use WWW::Form::UrlEncoded;
|
use WWW::Form::UrlEncoded;
|
||||||
|
|
||||||
use Object::Pad::MOP::FieldAttr;
|
use Object::Pad::MOP::FieldAttr;
|
||||||
|
|
|
@ -7,7 +7,7 @@ use Object::PadX::Role::AutoMarshal;
|
||||||
use Object::PadX::Role::AutoJSON;
|
use Object::PadX::Role::AutoJSON;
|
||||||
use Object::Pad::ClassAttr::Struct;
|
use Object::Pad::ClassAttr::Struct;
|
||||||
|
|
||||||
class OpenAIAsync::Types::Results::ToolCall :does(OpenAIAsync::Types::Base) :Struct {
|
class OpenAIAsync::Types::Results::ToolCall :Struct {
|
||||||
apply OpenAIAsync::Types::Base;
|
apply OpenAIAsync::Types::Base;
|
||||||
|
|
||||||
field $id :JSONStr = undef;
|
field $id :JSONStr = undef;
|
||||||
|
@ -15,14 +15,14 @@ class OpenAIAsync::Types::Results::ToolCall :does(OpenAIAsync::Types::Base) :Str
|
||||||
field $function :MarshalTo(OpenAIAsync::Types::Results::FunctionCall) = undef;
|
field $function :MarshalTo(OpenAIAsync::Types::Results::FunctionCall) = undef;
|
||||||
}
|
}
|
||||||
|
|
||||||
class OpenAIAsync::Types::Results::FunctionCall :does(OpenAIAsync::Types::Base) :Struct {
|
class OpenAIAsync::Types::Results::FunctionCall :Struct {
|
||||||
apply OpenAIAsync::Types::Base;
|
apply OpenAIAsync::Types::Base;
|
||||||
|
|
||||||
field $arguments :JSONStr = undef; # TODO decode the json from this directly?
|
field $arguments :JSONStr = undef; # TODO decode the json from this directly?
|
||||||
field $name :JSONStr = undef;
|
field $name :JSONStr = undef;
|
||||||
}
|
}
|
||||||
|
|
||||||
class OpenAIAsync::Types::Results::ChatMessage :does(OpenAIAsync::Types::Base) :Struct {
|
class OpenAIAsync::Types::Results::ChatMessage :Struct {
|
||||||
apply OpenAIAsync::Types::Base;
|
apply OpenAIAsync::Types::Base;
|
||||||
|
|
||||||
field $content :JSONStr;
|
field $content :JSONStr;
|
||||||
|
@ -31,7 +31,7 @@ class OpenAIAsync::Types::Results::ChatMessage :does(OpenAIAsync::Types::Base) :
|
||||||
field $function_call :MarshalTo(OpenAIAsync::Types::Results::FunctionCall) = undef; # Depcrecated, might still happen
|
field $function_call :MarshalTo(OpenAIAsync::Types::Results::FunctionCall) = undef; # Depcrecated, might still happen
|
||||||
}
|
}
|
||||||
|
|
||||||
class OpenAIAsync::Types::Results::ChatCompletionChoices :does(OpenAIAsync::Types::Base) :Struct {
|
class OpenAIAsync::Types::Results::ChatCompletionChoices :Struct {
|
||||||
apply OpenAIAsync::Types::Base;
|
apply OpenAIAsync::Types::Base;
|
||||||
|
|
||||||
field $finish_reason :JSONStr;
|
field $finish_reason :JSONStr;
|
||||||
|
@ -39,7 +39,7 @@ class OpenAIAsync::Types::Results::ChatCompletionChoices :does(OpenAIAsync::Type
|
||||||
field $message :MarshalTo(OpenAIAsync::Types::Results::ChatMessage);
|
field $message :MarshalTo(OpenAIAsync::Types::Results::ChatMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
class OpenAIAsync::Types::Results::ChatCompletion :does(OpenAIAsync::Types::Base) :Struct {
|
class OpenAIAsync::Types::Results::ChatCompletion :Struct {
|
||||||
apply OpenAIAsync::Types::Base;
|
apply OpenAIAsync::Types::Base;
|
||||||
|
|
||||||
field $id :JSONStr;
|
field $id :JSONStr;
|
||||||
|
@ -51,7 +51,7 @@ class OpenAIAsync::Types::Results::ChatCompletion :does(OpenAIAsync::Types::Base
|
||||||
field $object :JSONStr;
|
field $object :JSONStr;
|
||||||
}
|
}
|
||||||
|
|
||||||
class OpenAIAsync::Types::Results::ChunkDelta :does(OpenAIAsync::Types::Base) :Struct {
|
class OpenAIAsync::Types::Results::ChunkDelta :Struct {
|
||||||
apply OpenAIAsync::Types::Base;
|
apply OpenAIAsync::Types::Base;
|
||||||
|
|
||||||
field $content :JSONStr;
|
field $content :JSONStr;
|
||||||
|
@ -60,7 +60,7 @@ class OpenAIAsync::Types::Results::ChunkDelta :does(OpenAIAsync::Types::Base) :S
|
||||||
field $role :JSONStr;
|
field $role :JSONStr;
|
||||||
}
|
}
|
||||||
|
|
||||||
class OpenAIAsync::Types::Results::ChatCompletionChunkChoices :does(OpenAIAsync::Types::Base) :Struct {
|
class OpenAIAsync::Types::Results::ChatCompletionChunkChoices :Struct {
|
||||||
apply OpenAIAsync::Types::Base;
|
apply OpenAIAsync::Types::Base;
|
||||||
|
|
||||||
field $delta :MarshalTo(OpenAIAsync::Types::Results::ChunkDelta);
|
field $delta :MarshalTo(OpenAIAsync::Types::Results::ChunkDelta);
|
||||||
|
@ -69,7 +69,7 @@ class OpenAIAsync::Types::Results::ChatCompletionChunkChoices :does(OpenAIAsync:
|
||||||
}
|
}
|
||||||
|
|
||||||
# This is part of the streaming API
|
# This is part of the streaming API
|
||||||
class OpenAIAsync::Types::Results::ChatCompletionChunk :does(OpenAIAsync::Types::Base) :Struct {
|
class OpenAIAsync::Types::Results::ChatCompletionChunk :Struct {
|
||||||
apply OpenAIAsync::Types::Base;
|
apply OpenAIAsync::Types::Base;
|
||||||
|
|
||||||
field $id :JSONStr;
|
field $id :JSONStr;
|
||||||
|
@ -80,7 +80,7 @@ class OpenAIAsync::Types::Results::ChatCompletionChunk :does(OpenAIAsync::Types:
|
||||||
field $object :JSONStr;
|
field $object :JSONStr;
|
||||||
}
|
}
|
||||||
|
|
||||||
class OpenAIAsync::Types::Results::Usage :does(OpenAIAsync::Types::Base) :Struct {
|
class OpenAIAsync::Types::Results::Usage :Struct {
|
||||||
apply OpenAIAsync::Types::Base;
|
apply OpenAIAsync::Types::Base;
|
||||||
|
|
||||||
field $total_tokens :JSONNum;
|
field $total_tokens :JSONNum;
|
||||||
|
@ -88,7 +88,7 @@ class OpenAIAsync::Types::Results::Usage :does(OpenAIAsync::Types::Base) :Struct
|
||||||
field $completion_tokens :JSONNum = undef; # look at chat completions, is this the same
|
field $completion_tokens :JSONNum = undef; # look at chat completions, is this the same
|
||||||
}
|
}
|
||||||
|
|
||||||
class OpenAIAsync::Types::Results::LogProbs :does(OpenAIAsync::Types::Base) :Struct {
|
class OpenAIAsync::Types::Results::LogProbs :Struct {
|
||||||
apply OpenAIAsync::Types::Base;
|
apply OpenAIAsync::Types::Base;
|
||||||
|
|
||||||
# TODO what's the representation here?
|
# TODO what's the representation here?
|
||||||
|
@ -98,7 +98,7 @@ class OpenAIAsync::Types::Results::LogProbs :does(OpenAIAsync::Types::Base) :Str
|
||||||
field $top_logprobs = undef;
|
field $top_logprobs = undef;
|
||||||
}
|
}
|
||||||
|
|
||||||
class OpenAIAsync::Types::Results::CompletionChoices :does(OpenAIAsync::Types::Base) :Struct {
|
class OpenAIAsync::Types::Results::CompletionChoices :Struct {
|
||||||
apply OpenAIAsync::Types::Base;
|
apply OpenAIAsync::Types::Base;
|
||||||
|
|
||||||
field $text :JSONStr;
|
field $text :JSONStr;
|
||||||
|
@ -107,7 +107,7 @@ class OpenAIAsync::Types::Results::CompletionChoices :does(OpenAIAsync::Types::B
|
||||||
field $finish_reason :JSONStr = undef; # TODO enum? helper funcs for this class? ->is_finished?
|
field $finish_reason :JSONStr = undef; # TODO enum? helper funcs for this class? ->is_finished?
|
||||||
}
|
}
|
||||||
|
|
||||||
class OpenAIAsync::Types::Results::Completion :does(OpenAIAsync::Types::Base) :Struct {
|
class OpenAIAsync::Types::Results::Completion :Struct {
|
||||||
apply OpenAIAsync::Types::Base;
|
apply OpenAIAsync::Types::Base;
|
||||||
|
|
||||||
field $id :JSONStr;
|
field $id :JSONStr;
|
||||||
|
|
|
@ -9,7 +9,8 @@ use OpenAIAsync::Types;
|
||||||
|
|
||||||
# TODO this is shared request and result?
|
# TODO this is shared request and result?
|
||||||
# TODO Add a method here that given a file name will create a new object with things filled out
|
# TODO Add a method here that given a file name will create a new object with things filled out
|
||||||
class OpenAIAsync::Types::Shared::FileObject :does(OpenAIAsync::Types::Base) :Struct {
|
class OpenAIAsync::Types::Shared::FileObject :Struct {
|
||||||
|
apply OpenAIAsync::Types::Base;
|
||||||
field $id :JSONStr = undef; # Only optional for uploads, but always comes back from the service. TODO make a check
|
field $id :JSONStr = undef; # Only optional for uploads, but always comes back from the service. TODO make a check
|
||||||
field $bytes :JSONNum;
|
field $bytes :JSONNum;
|
||||||
field $created_at :JSONNum;
|
field $created_at :JSONNum;
|
||||||
|
|
Loading…
Add table
Reference in a new issue