You've already forked OpenIntegrations
mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2026-05-06 21:04:14 +02:00
Main build (Jenkins)
This commit is contained in:
Vendored
+4
@@ -1959,6 +1959,10 @@ def test_openai(){
|
||||
powershell encoding: 'UTF-8', script:'./oint.exe openai CreateTranscription --url "test" --token "test" --model "test" --audio "test" --type "test" --options "test" --headers "test" --debug --test '
|
||||
}
|
||||
|
||||
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
||||
powershell encoding: 'UTF-8', script:'./oint.exe openai GetModelList --url "test" --token "test" --headers "test" --debug --test '
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Vendored
+4
@@ -1959,6 +1959,10 @@ def test_openai(){
|
||||
powershell encoding: 'UTF-8', script:'./oint.exe openai СоздатьТранскрипцию --url "test" --token "test" --model "test" --audio "test" --type "test" --options "test" --headers "test" --debug --test '
|
||||
}
|
||||
|
||||
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
||||
powershell encoding: 'UTF-8', script:'./oint.exe openai ПолучитьСписокМоделей --url "test" --token "test" --headers "test" --debug --test '
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"URL": "https://api.athenaeum.digital:1122/",
|
||||
"Token": "sk-or-vv-c5884ebe9f13fb143194bb07ecb..."
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
URL = "https://api.athenaeum.digital:1122/";
|
||||
Token = "sk-or-vv-c5884ebe9f13fb143194bb07ecb...";
|
||||
|
||||
Result = OPI_OpenAI.GetModelList(URL, Token);
|
||||
+3
-2
@@ -1,8 +1,9 @@
|
||||
URL = "https://api.athenaeum.digital:1122/";
|
||||
Token = "sk-or-vv-c5884ebe9f13fb143194bb07ecb...";
|
||||
|
||||
File = "https://api.athenaeum.digital/test_data/picture.jpg"; // URL, Path or Binary Data
|
||||
FileName = "picture4.png";
|
||||
File = "https://api.athenaeum.digital/test_data/picture.jpg"; // URL, Path or Binary Data
|
||||
|
||||
FileName = StrTemplate("%1.png", String(New UUID()));
|
||||
Destination = "assistants";
|
||||
|
||||
Result = OPI_OpenAI.UploadFile(URL, Token, FileName, File, Destination);
|
||||
|
||||
+3
-2
@@ -41,8 +41,9 @@ Parameters with Binary data type can also accept file paths on disk and URLs
|
||||
URL = "https://api.athenaeum.digital:1122/";
|
||||
Token = "sk-or-vv-c5884ebe9f13fb143194bb07ecb...";
|
||||
|
||||
File = "https://api.athenaeum.digital/test_data/picture.jpg"; // URL, Path or Binary Data
|
||||
FileName = "picture4.png";
|
||||
File = "https://api.athenaeum.digital/test_data/picture.jpg"; // URL, Path or Binary Data
|
||||
|
||||
FileName = StrTemplate("%1.png", String(New UUID()));
|
||||
Destination = "assistants";
|
||||
|
||||
Result = OPI_OpenAI.UploadFile(URL, Token, FileName, File, Destination);
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
---
|
||||
sidebar_position: 1
|
||||
description: Get model list and other functions to work with OpenAI in the Open Integration Package, a free open-source integration library for 1C:Enterprise 8, OneScript and CLI
|
||||
keywords: [1C, 1С, 1С:Enterprise, 1С:Enterprise 8.3, API, Integration, Services, Exchange, OneScript, CLI, OpenAI]
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
# Get model list
|
||||
Receives a list of available models
|
||||
|
||||
|
||||
|
||||
`Function GetModelList(Val URL, Val Token, Val AdditionalHeaders = "") Export`
|
||||
|
||||
| Parameter | CLI option | Type | Required | Description |
|
||||
|-|-|-|-|-|
|
||||
| URL | --url | String | ✔ | OpenAI server URL |
|
||||
| Token | --token | String | ✔ | OpenAI authorization token |
|
||||
| AdditionalHeaders | --headers | Map Of KeyAndValue | ✖ | Additional request headers, if necessary |
|
||||
|
||||
|
||||
Returns: Map Of KeyAndValue - Processing result
|
||||
|
||||
<br/>
|
||||
|
||||
:::tip
|
||||
Method at API documentation: [List models](https://platform.openai.com/docs/api-reference/models/list)
|
||||
:::
|
||||
<br/>
|
||||
|
||||
|
||||
|
||||
```bsl title="1C:Enterprise/OneScript code example"
|
||||
URL = "https://api.athenaeum.digital:1122/";
|
||||
Token = "sk-or-vv-c5884ebe9f13fb143194bb07ecb...";
|
||||
|
||||
Result = OPI_OpenAI.GetModelList(URL, Token);
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "Models management",
|
||||
"position": "6"
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"URL": "https://api.athenaeum.digital:1122/",
|
||||
"Токен": "sk-or-vv-c5884ebe9f13fb143194bb07ecb..."
|
||||
}
|
||||
+3
-2
@@ -1,8 +1,9 @@
|
||||
URL = "https://api.athenaeum.digital:1122/";
|
||||
Токен = "sk-or-vv-c5884ebe9f13fb143194bb07ecb...";
|
||||
|
||||
Файл = "https://api.athenaeum.digital/test_data/picture.jpg"; // URL, Путь или Двоичные данные
|
||||
ИмяФайла = "picture4.png";
|
||||
Файл = "https://api.athenaeum.digital/test_data/picture.jpg"; // URL, Путь или Двоичные данные
|
||||
|
||||
ИмяФайла = СтрШаблон("%1.png", Строка(Новый УникальныйИдентификатор()));
|
||||
Назначение = "assistants";
|
||||
|
||||
Результат = OPI_OpenAI.ЗагрузитьФайл(URL, Токен, ИмяФайла, Файл, Назначение);
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
URL = "https://api.athenaeum.digital:1122/";
|
||||
Токен = "sk-or-vv-c5884ebe9f13fb143194bb07ecb...";
|
||||
|
||||
Результат = OPI_OpenAI.ПолучитьСписокМоделей(URL, Токен);
|
||||
+3
-2
@@ -41,8 +41,9 @@ import TabItem from '@theme/TabItem';
|
||||
URL = "https://api.athenaeum.digital:1122/";
|
||||
Токен = "sk-or-vv-c5884ebe9f13fb143194bb07ecb...";
|
||||
|
||||
Файл = "https://api.athenaeum.digital/test_data/picture.jpg"; // URL, Путь или Двоичные данные
|
||||
ИмяФайла = "picture4.png";
|
||||
Файл = "https://api.athenaeum.digital/test_data/picture.jpg"; // URL, Путь или Двоичные данные
|
||||
|
||||
ИмяФайла = СтрШаблон("%1.png", Строка(Новый УникальныйИдентификатор()));
|
||||
Назначение = "assistants";
|
||||
|
||||
Результат = OPI_OpenAI.ЗагрузитьФайл(URL, Токен, ИмяФайла, Файл, Назначение);
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
---
|
||||
sidebar_position: 1
|
||||
description: Получить список моделей и другие функции для работы с OpenAI в Открытом пакете интеграций - бесплатной open-source библиотеке интеграций для 1С:Предприятие 8, OneScript и CLI
|
||||
keywords: [1C, 1С, 1С:Предприятие, 1С:Предприятие 8.3, API, Интеграция, Сервисы, Обмен, OneScript, CLI, OpenAI]
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
# Получить список моделей
|
||||
Получает список доступных моделей
|
||||
|
||||
|
||||
|
||||
`Функция ПолучитьСписокМоделей(Знач URL, Знач Токен, Знач ДопЗаголовки = "") Экспорт`
|
||||
|
||||
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|
||||
|-|-|-|-|-|
|
||||
| URL | --url | Строка | ✔ | URL сервера OpenAI |
|
||||
| Токен | --token | Строка | ✔ | Токен авторизации OpenAI |
|
||||
| ДопЗаголовки | --headers | Соответствие Из КлючИЗначение | ✖ | Доп. заголовки запроса, если необходимо |
|
||||
|
||||
|
||||
Возвращаемое значение: Соответствие Из КлючИЗначение - Результат обработки
|
||||
|
||||
<br/>
|
||||
|
||||
:::tip
|
||||
Метод в документации API: [List models](https://platform.openai.com/docs/api-reference/models/list)
|
||||
:::
|
||||
<br/>
|
||||
|
||||
|
||||
|
||||
```bsl title="Пример использования для 1С:Предприятие/OneScript"
|
||||
URL = "https://api.athenaeum.digital:1122/";
|
||||
Токен = "sk-or-vv-c5884ebe9f13fb143194bb07ecb...";
|
||||
|
||||
Результат = OPI_OpenAI.ПолучитьСписокМоделей(URL, Токен);
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "Работа с моделями",
|
||||
"position": "6"
|
||||
}
|
||||
+11
-1
@@ -46,4 +46,14 @@ import TabItem from '@theme/TabItem';
|
||||
|
||||
|
||||
|
||||
|
||||
```json title="Результат"
|
||||
{
|
||||
"created": 1749756865,
|
||||
"data": [
|
||||
{
|
||||
"revised_prompt": "Imagine a sunny meadow with lush green grass. In the heart of this vibrant landscape, stands a yellow alpaca with its woolly fur, shining brightly under the sunlight. Its features are comically endearing with a long neck, a small rounded head, and large, expressive eyes. It is peacefully grazing, unperturbed by the world around it, epitomizing the tranquility of the idyllic meadow. The gentle breeze flutters its fur, adding an element of charisma to this adorable creature. The picture is a beautiful blend of vibrant colors, and a sense of calmness.",
|
||||
"url": "https://oaidalleapiprodscus.blob.core.windows.net/private/org-Dy8ARyqBtu507OGoMBxfUU0S/user-n4L5wc2dF1fH9APAG2dE3Rw9/img-oEeMH1QJWSvtVlmG3yc1KOqx.png?st=2025-06-12T18%3A34%3A25Z&se=2025-06-12T20%3A34%3A25Z&sp=r&sv=2024-08-04&sr=b&rscd=inline&rsct=image/png&skoid=475fd488-6c59-44a5-9aa9-31c4db451bea&sktid=a48cca56-e6da-484e-a814-9c849652bcb3&skt=2025-06-12T11%3A41%3A33Z&ske=2025-06-13T11%3A41%3A33Z&sks=b&skv=2024-08-04&sig=%2BjegkXiCFSi3l80vNiH1IOij4nQ%2BD%2Bd%2BNitOmxISJ1c%3D"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
Vendored
+8258
-8258
File diff suppressed because it is too large
Load Diff
+32
@@ -629,6 +629,34 @@ EndFunction
|
||||
|
||||
#EndRegion
|
||||
|
||||
#Region ModelsManagement
|
||||
|
||||
// Get model list
|
||||
// Receives a list of available models
|
||||
//
|
||||
// Note
|
||||
// Method at API documentation: [List models](@platform.openai.com/docs/api-reference/models/list)
|
||||
//
|
||||
// Parameters:
|
||||
// URL - String - OpenAI server URL - url
|
||||
// Token - String - OpenAI authorization token - token
|
||||
// AdditionalHeaders - Map Of KeyAndValue - Additional request headers, if necessary - headers
|
||||
//
|
||||
// Returns:
|
||||
// Map Of KeyAndValue - Processing result
|
||||
Function GetModelList(Val URL, Val Token, Val AdditionalHeaders = "") Export
|
||||
|
||||
CompleteURL(URL, "v1/models");
|
||||
HeadersProcessing(AdditionalHeaders, Token);
|
||||
|
||||
Response = OPI_HTTPRequests.Get(URL, , AdditionalHeaders);
|
||||
|
||||
Return ConvertKeysToLowerCase(Response);
|
||||
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
|
||||
#EndRegion
|
||||
|
||||
#Region Private
|
||||
@@ -763,4 +791,8 @@ Function СоздатьТранскрипцию(Val URL, Val Токен, Val М
|
||||
Return CreateTranscription(URL, Токен, Модель, Аудио, MIME, ДопПараметры, ДопЗаголовки);
|
||||
EndFunction
|
||||
|
||||
Function ПолучитьСписокМоделей(Val URL, Val Токен, Val ДопЗаголовки = "") Export
|
||||
Return GetModelList(URL, Токен, ДопЗаголовки);
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
+27
-2
@@ -2800,6 +2800,16 @@ Procedure OAI_AudioProcessing() Export
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure OAI_ModelsManagement() Export
|
||||
|
||||
TestParameters = New Structure;
|
||||
OPI_TestDataRetrieval.ParameterToCollection("OpenAI_Token" , TestParameters);
|
||||
OPI_TestDataRetrieval.ParameterToCollection("OpenAI_URL" , TestParameters);
|
||||
|
||||
OpenAI_GetModelList(TestParameters);
|
||||
|
||||
EndProcedure
|
||||
|
||||
#EndRegion
|
||||
|
||||
#EndRegion
|
||||
@@ -23542,8 +23552,9 @@ Procedure OpenAI_UploadFile(FunctionParameters)
|
||||
URL = FunctionParameters["OpenAI_URL"];
|
||||
Token = FunctionParameters["OpenAI_Token"];
|
||||
|
||||
File = FunctionParameters["Picture"]; // URL, Path or Binary Data
|
||||
FileName = "picture4.png";
|
||||
File = FunctionParameters["Picture"]; // URL, Path or Binary Data
|
||||
|
||||
FileName = StrTemplate("%1.png", String(New UUID()));
|
||||
Destination = "assistants";
|
||||
|
||||
Result = OPI_OpenAI.UploadFile(URL, Token, FileName, File, Destination);
|
||||
@@ -23717,6 +23728,20 @@ Procedure OpenAI_GetImages(FunctionParameters)
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure OpenAI_GetModelList(FunctionParameters)
|
||||
|
||||
URL = FunctionParameters["OpenAI_URL"];
|
||||
Token = FunctionParameters["OpenAI_Token"];
|
||||
|
||||
Result = OPI_OpenAI.GetModelList(URL, Token);
|
||||
|
||||
// END
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "GetModelList", "OpenAI");
|
||||
OPI_TestDataRetrieval.Check_OpenAIList(Result);
|
||||
|
||||
EndProcedure
|
||||
|
||||
#EndRegion
|
||||
|
||||
#EndRegion
|
||||
|
||||
+157
@@ -2628,6 +2628,9 @@ Procedure CLI_OAI_RequestsProcessing() Export
|
||||
|
||||
CLI_OpenAI_GetResponse(TestParameters);
|
||||
CLI_OpenAI_GetEmbeddings(TestParameters);
|
||||
CLI_OpenAI_GetMessageStructure(TestParameters);
|
||||
CLI_OpenAI_GetImageMessageStructure(TestParameters);
|
||||
CLI_OpenAI_GetImages(TestParameters);
|
||||
|
||||
EndProcedure
|
||||
|
||||
@@ -2659,6 +2662,27 @@ Procedure CLI_OAI_FileManagement() Export
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure CLI_OAI_AudioProcessing() Export
|
||||
|
||||
TestParameters = New Structure;
|
||||
OPI_TestDataRetrieval.ParameterToCollection("OpenAI_Token" , TestParameters);
|
||||
OPI_TestDataRetrieval.ParameterToCollection("OpenAI_URL" , TestParameters);
|
||||
|
||||
CLI_OpenAI_GenerateSpeech(TestParameters);
|
||||
CLI_OpenAI_CreateTranscription(TestParameters);
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure CLI_OAI_ModelsManagement() Export
|
||||
|
||||
TestParameters = New Structure;
|
||||
OPI_TestDataRetrieval.ParameterToCollection("OpenAI_Token" , TestParameters);
|
||||
OPI_TestDataRetrieval.ParameterToCollection("OpenAI_URL" , TestParameters);
|
||||
|
||||
CLI_OpenAI_GetModelList(TestParameters);
|
||||
|
||||
EndProcedure
|
||||
|
||||
#EndRegion
|
||||
|
||||
#EndRegion
|
||||
@@ -24840,6 +24864,139 @@ Procedure CLI_OpenAI_DownloadFile(FunctionParameters)
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure CLI_OpenAI_GetMessageStructure(FunctionParameters)
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("role", "user");
|
||||
Options.Insert("text", "What is 1C:Enterprise?");
|
||||
|
||||
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetMessageStructure", Options);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLogCLI(Result, "GetMessageStructure", "OpenAI");
|
||||
OPI_TestDataRetrieval.Check_Map(Result);
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure CLI_OpenAI_GetImageMessageStructure(FunctionParameters)
|
||||
|
||||
URL = FunctionParameters["OpenAI_URL"];
|
||||
Token = FunctionParameters["OpenAI_Token"];
|
||||
Image = FunctionParameters["OpenAI_File"];
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("role" , "user");
|
||||
Options.Insert("file" , Image);
|
||||
Options.Insert("prompt", "What is in this image?");
|
||||
|
||||
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetImageMessageStructure", Options);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLogCLI(Result, "GetImageMessageStructure", "OpenAI");
|
||||
OPI_TestDataRetrieval.Check_Map(Result);
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure CLI_OpenAI_GenerateSpeech(FunctionParameters)
|
||||
|
||||
URL = FunctionParameters["OpenAI_URL"];
|
||||
Token = FunctionParameters["OpenAI_Token"];
|
||||
|
||||
Text = "Attack ships on fire off the shoulder of Orion bright as magnesium";
|
||||
Model = "tts-1";
|
||||
|
||||
AdditionalParameters = New Structure("response_format", "wav");
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("url" , URL);
|
||||
Options.Insert("token" , Token);
|
||||
Options.Insert("model" , Model);
|
||||
Options.Insert("input" , Text);
|
||||
Options.Insert("options", AdditionalParameters);
|
||||
|
||||
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GenerateSpeech", Options);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLogCLI(Result, "GenerateSpeech", "OpenAI");
|
||||
OPI_TestDataRetrieval.Check_BinaryData(Result, 137516);
|
||||
|
||||
//@skip-check missing-temporary-file-deletion
|
||||
TFN = GetTempFileName("wav");
|
||||
Result.Write(TFN);
|
||||
|
||||
OPI_TestDataRetrieval.WriteParameter("OpenAI_Speech", TFN);
|
||||
OPI_Tools.AddField("OpenAI_Speech", TFN, "String", FunctionParameters);
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure CLI_OpenAI_CreateTranscription(FunctionParameters)
|
||||
|
||||
URL = FunctionParameters["OpenAI_URL"];
|
||||
Token = FunctionParameters["OpenAI_Token"];
|
||||
|
||||
Audio = FunctionParameters["OpenAI_Speech"];
|
||||
Model = "whisper-1";
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("url" , URL);
|
||||
Options.Insert("token" , Token);
|
||||
Options.Insert("model" , Model);
|
||||
Options.Insert("audio" , Audio);
|
||||
Options.Insert("type" , "audio/wav");
|
||||
|
||||
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "CreateTranscription", Options);
|
||||
|
||||
Try
|
||||
DeleteFiles(Audio);
|
||||
Except
|
||||
Message("Error deleting file after test");
|
||||
EndTry;
|
||||
|
||||
OPI_TestDataRetrieval.WriteLogCLI(Result, "CreateTranscription", "OpenAI");
|
||||
OPI_TestDataRetrieval.Check_String(Lower(Result["text"]), "attack ships on fire off the shoulder of orion bright as magnesium.");
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure CLI_OpenAI_GetImages(FunctionParameters)
|
||||
|
||||
URL = FunctionParameters["OpenAI_URL2"];
|
||||
Token = FunctionParameters["OpenAI_Token2"];
|
||||
|
||||
Model = "dall-e-3";
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("prompt", "Yellow alpaca");
|
||||
Options.Insert("amount", 1);
|
||||
Options.Insert("size" , "1024x1024");
|
||||
|
||||
Description = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetImageDescriptionStructure", Options);
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("url" , URL);
|
||||
Options.Insert("token" , Token);
|
||||
Options.Insert("model" , Model);
|
||||
Options.Insert("descr" , Description);
|
||||
|
||||
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetImages", Options);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLogCLI(Result, "GetImages", "OpenAI");
|
||||
OPI_TestDataRetrieval.Check_OpenAIImage(Result);
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure CLI_OpenAI_GetModelList(FunctionParameters)
|
||||
|
||||
URL = FunctionParameters["OpenAI_URL"];
|
||||
Token = FunctionParameters["OpenAI_Token"];
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("url" , URL);
|
||||
Options.Insert("token" , Token);
|
||||
|
||||
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetModelList", Options);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "GetModelList", "OpenAI");
|
||||
OPI_TestDataRetrieval.Check_OpenAIList(Result);
|
||||
|
||||
EndProcedure
|
||||
|
||||
#EndRegion
|
||||
|
||||
#EndRegion
|
||||
|
||||
@@ -317,6 +317,7 @@ Function GetTestTable() Export
|
||||
NewTest(TestTable, "OAI_Assistants" , "Assistants" , OpenAI);
|
||||
NewTest(TestTable, "OAI_FileManagement" , "Files management" , OpenAI);
|
||||
NewTest(TestTable, "OAI_AudioProcessing" , "Audio processing" , OpenAI);
|
||||
NewTest(TestTable, "OAI_ModelsManagement" , "Models management" , OpenAI);
|
||||
|
||||
Return TestTable;
|
||||
|
||||
|
||||
@@ -629,6 +629,34 @@ EndFunction
|
||||
|
||||
#EndRegion
|
||||
|
||||
#Region ModelsManagement
|
||||
|
||||
// Get model list
|
||||
// Receives a list of available models
|
||||
//
|
||||
// Note
|
||||
// Method at API documentation: [List models](@platform.openai.com/docs/api-reference/models/list)
|
||||
//
|
||||
// Parameters:
|
||||
// URL - String - OpenAI server URL - url
|
||||
// Token - String - OpenAI authorization token - token
|
||||
// AdditionalHeaders - Map Of KeyAndValue - Additional request headers, if necessary - headers
|
||||
//
|
||||
// Returns:
|
||||
// Map Of KeyAndValue - Processing result
|
||||
Function GetModelList(Val URL, Val Token, Val AdditionalHeaders = "") Export
|
||||
|
||||
CompleteURL(URL, "v1/models");
|
||||
HeadersProcessing(AdditionalHeaders, Token);
|
||||
|
||||
Response = OPI_HTTPRequests.Get(URL, , AdditionalHeaders);
|
||||
|
||||
Return ConvertKeysToLowerCase(Response);
|
||||
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
|
||||
#EndRegion
|
||||
|
||||
#Region Private
|
||||
|
||||
@@ -317,6 +317,7 @@ Function GetTestTable() Export
|
||||
NewTest(TestTable, "OAI_Assistants" , "Assistants" , OpenAI);
|
||||
NewTest(TestTable, "OAI_FileManagement" , "Files management" , OpenAI);
|
||||
NewTest(TestTable, "OAI_AudioProcessing" , "Audio processing" , OpenAI);
|
||||
NewTest(TestTable, "OAI_ModelsManagement" , "Models management" , OpenAI);
|
||||
|
||||
Return TestTable;
|
||||
|
||||
|
||||
+27
-2
@@ -2800,6 +2800,16 @@ Procedure OAI_AudioProcessing() Export
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure OAI_ModelsManagement() Export
|
||||
|
||||
TestParameters = New Structure;
|
||||
OPI_TestDataRetrieval.ParameterToCollection("OpenAI_Token" , TestParameters);
|
||||
OPI_TestDataRetrieval.ParameterToCollection("OpenAI_URL" , TestParameters);
|
||||
|
||||
OpenAI_GetModelList(TestParameters);
|
||||
|
||||
EndProcedure
|
||||
|
||||
#EndRegion
|
||||
|
||||
#EndRegion
|
||||
@@ -23542,8 +23552,9 @@ Procedure OpenAI_UploadFile(FunctionParameters)
|
||||
URL = FunctionParameters["OpenAI_URL"];
|
||||
Token = FunctionParameters["OpenAI_Token"];
|
||||
|
||||
File = FunctionParameters["Picture"]; // URL, Path or Binary Data
|
||||
FileName = "picture4.png";
|
||||
File = FunctionParameters["Picture"]; // URL, Path or Binary Data
|
||||
|
||||
FileName = StrTemplate("%1.png", String(New UUID()));
|
||||
Destination = "assistants";
|
||||
|
||||
Result = OPI_OpenAI.UploadFile(URL, Token, FileName, File, Destination);
|
||||
@@ -23717,6 +23728,20 @@ Procedure OpenAI_GetImages(FunctionParameters)
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure OpenAI_GetModelList(FunctionParameters)
|
||||
|
||||
URL = FunctionParameters["OpenAI_URL"];
|
||||
Token = FunctionParameters["OpenAI_Token"];
|
||||
|
||||
Result = OPI_OpenAI.GetModelList(URL, Token);
|
||||
|
||||
// END
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "GetModelList", "OpenAI");
|
||||
OPI_TestDataRetrieval.Check_OpenAIList(Result);
|
||||
|
||||
EndProcedure
|
||||
|
||||
#EndRegion
|
||||
|
||||
#EndRegion
|
||||
|
||||
@@ -2628,6 +2628,9 @@ Procedure CLI_OAI_RequestsProcessing() Export
|
||||
|
||||
CLI_OpenAI_GetResponse(TestParameters);
|
||||
CLI_OpenAI_GetEmbeddings(TestParameters);
|
||||
CLI_OpenAI_GetMessageStructure(TestParameters);
|
||||
CLI_OpenAI_GetImageMessageStructure(TestParameters);
|
||||
CLI_OpenAI_GetImages(TestParameters);
|
||||
|
||||
EndProcedure
|
||||
|
||||
@@ -2659,6 +2662,27 @@ Procedure CLI_OAI_FileManagement() Export
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure CLI_OAI_AudioProcessing() Export
|
||||
|
||||
TestParameters = New Structure;
|
||||
OPI_TestDataRetrieval.ParameterToCollection("OpenAI_Token" , TestParameters);
|
||||
OPI_TestDataRetrieval.ParameterToCollection("OpenAI_URL" , TestParameters);
|
||||
|
||||
CLI_OpenAI_GenerateSpeech(TestParameters);
|
||||
CLI_OpenAI_CreateTranscription(TestParameters);
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure CLI_OAI_ModelsManagement() Export
|
||||
|
||||
TestParameters = New Structure;
|
||||
OPI_TestDataRetrieval.ParameterToCollection("OpenAI_Token" , TestParameters);
|
||||
OPI_TestDataRetrieval.ParameterToCollection("OpenAI_URL" , TestParameters);
|
||||
|
||||
CLI_OpenAI_GetModelList(TestParameters);
|
||||
|
||||
EndProcedure
|
||||
|
||||
#EndRegion
|
||||
|
||||
#EndRegion
|
||||
@@ -24840,6 +24864,139 @@ Procedure CLI_OpenAI_DownloadFile(FunctionParameters)
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure CLI_OpenAI_GetMessageStructure(FunctionParameters)
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("role", "user");
|
||||
Options.Insert("text", "What is 1C:Enterprise?");
|
||||
|
||||
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetMessageStructure", Options);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLogCLI(Result, "GetMessageStructure", "OpenAI");
|
||||
OPI_TestDataRetrieval.Check_Map(Result);
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure CLI_OpenAI_GetImageMessageStructure(FunctionParameters)
|
||||
|
||||
URL = FunctionParameters["OpenAI_URL"];
|
||||
Token = FunctionParameters["OpenAI_Token"];
|
||||
Image = FunctionParameters["OpenAI_File"];
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("role" , "user");
|
||||
Options.Insert("file" , Image);
|
||||
Options.Insert("prompt", "What is in this image?");
|
||||
|
||||
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetImageMessageStructure", Options);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLogCLI(Result, "GetImageMessageStructure", "OpenAI");
|
||||
OPI_TestDataRetrieval.Check_Map(Result);
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure CLI_OpenAI_GenerateSpeech(FunctionParameters)
|
||||
|
||||
URL = FunctionParameters["OpenAI_URL"];
|
||||
Token = FunctionParameters["OpenAI_Token"];
|
||||
|
||||
Text = "Attack ships on fire off the shoulder of Orion bright as magnesium";
|
||||
Model = "tts-1";
|
||||
|
||||
AdditionalParameters = New Structure("response_format", "wav");
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("url" , URL);
|
||||
Options.Insert("token" , Token);
|
||||
Options.Insert("model" , Model);
|
||||
Options.Insert("input" , Text);
|
||||
Options.Insert("options", AdditionalParameters);
|
||||
|
||||
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GenerateSpeech", Options);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLogCLI(Result, "GenerateSpeech", "OpenAI");
|
||||
OPI_TestDataRetrieval.Check_BinaryData(Result, 137516);
|
||||
|
||||
//@skip-check missing-temporary-file-deletion
|
||||
TFN = GetTempFileName("wav");
|
||||
Result.Write(TFN);
|
||||
|
||||
OPI_TestDataRetrieval.WriteParameter("OpenAI_Speech", TFN);
|
||||
OPI_Tools.AddField("OpenAI_Speech", TFN, "String", FunctionParameters);
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure CLI_OpenAI_CreateTranscription(FunctionParameters)
|
||||
|
||||
URL = FunctionParameters["OpenAI_URL"];
|
||||
Token = FunctionParameters["OpenAI_Token"];
|
||||
|
||||
Audio = FunctionParameters["OpenAI_Speech"];
|
||||
Model = "whisper-1";
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("url" , URL);
|
||||
Options.Insert("token" , Token);
|
||||
Options.Insert("model" , Model);
|
||||
Options.Insert("audio" , Audio);
|
||||
Options.Insert("type" , "audio/wav");
|
||||
|
||||
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "CreateTranscription", Options);
|
||||
|
||||
Try
|
||||
DeleteFiles(Audio);
|
||||
Except
|
||||
Message("Error deleting file after test");
|
||||
EndTry;
|
||||
|
||||
OPI_TestDataRetrieval.WriteLogCLI(Result, "CreateTranscription", "OpenAI");
|
||||
OPI_TestDataRetrieval.Check_String(Lower(Result["text"]), "attack ships on fire off the shoulder of orion bright as magnesium.");
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure CLI_OpenAI_GetImages(FunctionParameters)
|
||||
|
||||
URL = FunctionParameters["OpenAI_URL2"];
|
||||
Token = FunctionParameters["OpenAI_Token2"];
|
||||
|
||||
Model = "dall-e-3";
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("prompt", "Yellow alpaca");
|
||||
Options.Insert("amount", 1);
|
||||
Options.Insert("size" , "1024x1024");
|
||||
|
||||
Description = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetImageDescriptionStructure", Options);
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("url" , URL);
|
||||
Options.Insert("token" , Token);
|
||||
Options.Insert("model" , Model);
|
||||
Options.Insert("descr" , Description);
|
||||
|
||||
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetImages", Options);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLogCLI(Result, "GetImages", "OpenAI");
|
||||
OPI_TestDataRetrieval.Check_OpenAIImage(Result);
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure CLI_OpenAI_GetModelList(FunctionParameters)
|
||||
|
||||
URL = FunctionParameters["OpenAI_URL"];
|
||||
Token = FunctionParameters["OpenAI_Token"];
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("url" , URL);
|
||||
Options.Insert("token" , Token);
|
||||
|
||||
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetModelList", Options);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "GetModelList", "OpenAI");
|
||||
OPI_TestDataRetrieval.Check_OpenAIList(Result);
|
||||
|
||||
EndProcedure
|
||||
|
||||
#EndRegion
|
||||
|
||||
#EndRegion
|
||||
|
||||
@@ -876,6 +876,37 @@
|
||||
NewLine.Description = "Additional request headers, if necessary (optional, def. val. - Empty value)";
|
||||
NewLine.Region = "Audio processing";
|
||||
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
NewLine.Library = "openai";
|
||||
NewLine.Module = "OPI_OpenAI";
|
||||
NewLine.Method = "GetModelList";
|
||||
NewLine.SearchMethod = "GETMODELLIST";
|
||||
NewLine.Parameter = "--url";
|
||||
NewLine.Description = "OpenAI server URL";
|
||||
NewLine.Region = "Models management";
|
||||
NewLine.MethodDescription = "Receives a list of available models";
|
||||
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
NewLine.Library = "openai";
|
||||
NewLine.Module = "OPI_OpenAI";
|
||||
NewLine.Method = "GetModelList";
|
||||
NewLine.SearchMethod = "GETMODELLIST";
|
||||
NewLine.Parameter = "--token";
|
||||
NewLine.Description = "OpenAI authorization token";
|
||||
NewLine.Region = "Models management";
|
||||
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
NewLine.Library = "openai";
|
||||
NewLine.Module = "OPI_OpenAI";
|
||||
NewLine.Method = "GetModelList";
|
||||
NewLine.SearchMethod = "GETMODELLIST";
|
||||
NewLine.Parameter = "--headers";
|
||||
NewLine.Description = "Additional request headers, if necessary (optional, def. val. - Empty value)";
|
||||
NewLine.Region = "Models management";
|
||||
|
||||
Return CompositionTable;
|
||||
EndFunction
|
||||
|
||||
|
||||
+32
@@ -629,6 +629,34 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область РаботаСМоделями
|
||||
|
||||
// Получить список моделей
|
||||
// Получает список доступных моделей
|
||||
//
|
||||
// Примечание:
|
||||
// Метод в документации API: [List models](@platform.openai.com/docs/api-reference/models/list)
|
||||
//
|
||||
// Параметры:
|
||||
// URL - Строка - URL сервера OpenAI - url
|
||||
// Токен - Строка - Токен авторизации OpenAI - token
|
||||
// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп. заголовки запроса, если необходимо - headers
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - Результат обработки
|
||||
Функция ПолучитьСписокМоделей(Знач URL, Знач Токен, Знач ДопЗаголовки = "") Экспорт
|
||||
|
||||
ДополнитьURL(URL, "v1/models");
|
||||
ОбработатьЗаголовки(ДопЗаголовки, Токен);
|
||||
|
||||
Ответ = OPI_ЗапросыHTTP.Get(URL, , ДопЗаголовки);
|
||||
|
||||
Возврат ПривестиКлючиКНижнемуРегистру(Ответ);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
@@ -763,4 +791,8 @@ Function CreateTranscription(Val URL, Val Token, Val Model, Val Audio, Val MIME
|
||||
Return СоздатьТранскрипцию(URL, Token, Model, Audio, MIME, AdditionalParameters, AdditionalHeaders);
|
||||
EndFunction
|
||||
|
||||
Function GetModelList(Val URL, Val Token, Val AdditionalHeaders = "") Export
|
||||
Return ПолучитьСписокМоделей(URL, Token, AdditionalHeaders);
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
+27
-2
@@ -2800,6 +2800,16 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура OAI_РаботаСМоделями() Экспорт
|
||||
|
||||
ПараметрыТеста = Новый Структура;
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("OpenAI_Token" , ПараметрыТеста);
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("OpenAI_URL" , ПараметрыТеста);
|
||||
|
||||
OpenAI_ПолучитьСписокМоделей(ПараметрыТеста);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
@@ -23542,8 +23552,9 @@
|
||||
URL = ПараметрыФункции["OpenAI_URL"];
|
||||
Токен = ПараметрыФункции["OpenAI_Token"];
|
||||
|
||||
Файл = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
|
||||
ИмяФайла = "picture4.png";
|
||||
Файл = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
|
||||
|
||||
ИмяФайла = СтрШаблон("%1.png", Строка(Новый УникальныйИдентификатор()));
|
||||
Назначение = "assistants";
|
||||
|
||||
Результат = OPI_OpenAI.ЗагрузитьФайл(URL, Токен, ИмяФайла, Файл, Назначение);
|
||||
@@ -23717,6 +23728,20 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура OpenAI_ПолучитьСписокМоделей(ПараметрыФункции)
|
||||
|
||||
URL = ПараметрыФункции["OpenAI_URL"];
|
||||
Токен = ПараметрыФункции["OpenAI_Token"];
|
||||
|
||||
Результат = OPI_OpenAI.ПолучитьСписокМоделей(URL, Токен);
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокМоделей", "OpenAI");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_OpenAIСписок(Результат);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
+157
@@ -2628,6 +2628,9 @@
|
||||
|
||||
CLI_OpenAI_ПолучитьОтвет(ПараметрыТеста);
|
||||
CLI_OpenAI_ПолучитьПредставления(ПараметрыТеста);
|
||||
CLI_OpenAI_ПолучитьСтруктуруСообщения(ПараметрыТеста);
|
||||
CLI_OpenAI_ПолучитьСтруктуруСообщенияКартинки(ПараметрыТеста);
|
||||
CLI_OpenAI_ПолучитьКартинки(ПараметрыТеста);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -2659,6 +2662,27 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура CLI_OAI_РаботаСАудио() Экспорт
|
||||
|
||||
ПараметрыТеста = Новый Структура;
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("OpenAI_Token" , ПараметрыТеста);
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("OpenAI_URL" , ПараметрыТеста);
|
||||
|
||||
CLI_OpenAI_СгенерироватьРечь(ПараметрыТеста);
|
||||
CLI_OpenAI_СоздатьТранскрипцию(ПараметрыТеста);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура CLI_OAI_РаботаСМоделями() Экспорт
|
||||
|
||||
ПараметрыТеста = Новый Структура;
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("OpenAI_Token" , ПараметрыТеста);
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("OpenAI_URL" , ПараметрыТеста);
|
||||
|
||||
CLI_OpenAI_ПолучитьСписокМоделей(ПараметрыТеста);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
@@ -24840,6 +24864,139 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура CLI_OpenAI_ПолучитьСтруктуруСообщения(ПараметрыФункции)
|
||||
|
||||
Опции = Новый Структура;
|
||||
Опции.Вставить("role", "user");
|
||||
Опции.Вставить("text", "What is 1C:Enterprise?");
|
||||
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("openai", "ПолучитьСтруктуруСообщения", Опции);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ПолучитьСтруктуруСообщения", "OpenAI");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_Соответствие(Результат);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура CLI_OpenAI_ПолучитьСтруктуруСообщенияКартинки(ПараметрыФункции)
|
||||
|
||||
URL = ПараметрыФункции["OpenAI_URL"];
|
||||
Токен = ПараметрыФункции["OpenAI_Token"];
|
||||
Картинка = ПараметрыФункции["OpenAI_File"];
|
||||
|
||||
Опции = Новый Структура;
|
||||
Опции.Вставить("role" , "user");
|
||||
Опции.Вставить("file" , Картинка);
|
||||
Опции.Вставить("prompt", "What is in this image?");
|
||||
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("openai", "ПолучитьСтруктуруСообщенияКартинки", Опции);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ПолучитьСтруктуруСообщенияКартинки", "OpenAI");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_Соответствие(Результат);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура CLI_OpenAI_СгенерироватьРечь(ПараметрыФункции)
|
||||
|
||||
URL = ПараметрыФункции["OpenAI_URL"];
|
||||
Токен = ПараметрыФункции["OpenAI_Token"];
|
||||
|
||||
Текст = "Attack ships on fire off the shoulder of Orion bright as magnesium";
|
||||
Модель = "tts-1";
|
||||
|
||||
ДопПараметры = Новый Структура("response_format", "wav");
|
||||
|
||||
Опции = Новый Структура;
|
||||
Опции.Вставить("url" , URL);
|
||||
Опции.Вставить("token" , Токен);
|
||||
Опции.Вставить("model" , Модель);
|
||||
Опции.Вставить("input" , Текст);
|
||||
Опции.Вставить("options", ДопПараметры);
|
||||
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("openai", "СгенерироватьРечь", Опции);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "СгенерироватьРечь", "OpenAI");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_ДвоичныеДанные(Результат, 137516);
|
||||
|
||||
//@skip-check missing-temporary-file-deletion
|
||||
ИВФ = ПолучитьИмяВременногоФайла("wav");
|
||||
Результат.Записать(ИВФ);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("OpenAI_Speech", ИВФ);
|
||||
OPI_Инструменты.ДобавитьПоле("OpenAI_Speech", ИВФ, "Строка", ПараметрыФункции);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура CLI_OpenAI_СоздатьТранскрипцию(ПараметрыФункции)
|
||||
|
||||
URL = ПараметрыФункции["OpenAI_URL"];
|
||||
Токен = ПараметрыФункции["OpenAI_Token"];
|
||||
|
||||
Аудио = ПараметрыФункции["OpenAI_Speech"];
|
||||
Модель = "whisper-1";
|
||||
|
||||
Опции = Новый Структура;
|
||||
Опции.Вставить("url" , URL);
|
||||
Опции.Вставить("token" , Токен);
|
||||
Опции.Вставить("model" , Модель);
|
||||
Опции.Вставить("audio" , Аудио);
|
||||
Опции.Вставить("type" , "audio/wav");
|
||||
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("openai", "СоздатьТранскрипцию", Опции);
|
||||
|
||||
Попытка
|
||||
УдалитьФайлы(Аудио);
|
||||
Исключение
|
||||
Сообщить("Ошибка удаления файла после теста");
|
||||
КонецПопытки;
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "СоздатьТранскрипцию", "OpenAI");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_Строка(нРег(Результат["text"]), "attack ships on fire off the shoulder of orion bright as magnesium.");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура CLI_OpenAI_ПолучитьКартинки(ПараметрыФункции)
|
||||
|
||||
URL = ПараметрыФункции["OpenAI_URL2"];
|
||||
Токен = ПараметрыФункции["OpenAI_Token2"];
|
||||
|
||||
Модель = "dall-e-3";
|
||||
|
||||
Опции = Новый Структура;
|
||||
Опции.Вставить("prompt", "Yellow alpaca");
|
||||
Опции.Вставить("amount", 1);
|
||||
Опции.Вставить("size" , "1024x1024");
|
||||
|
||||
Описание = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("openai", "ПолучитьСтруктуруОписанияКартинок", Опции);
|
||||
|
||||
Опции = Новый Структура;
|
||||
Опции.Вставить("url" , URL);
|
||||
Опции.Вставить("token" , Токен);
|
||||
Опции.Вставить("model" , Модель);
|
||||
Опции.Вставить("descr" , Описание);
|
||||
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("openai", "ПолучитьКартинки", Опции);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ПолучитьКартинки", "OpenAI");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_OpenAIКартинка(Результат);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура CLI_OpenAI_ПолучитьСписокМоделей(ПараметрыФункции)
|
||||
|
||||
URL = ПараметрыФункции["OpenAI_URL"];
|
||||
Токен = ПараметрыФункции["OpenAI_Token"];
|
||||
|
||||
Опции = Новый Структура;
|
||||
Опции.Вставить("url" , URL);
|
||||
Опции.Вставить("token" , Токен);
|
||||
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("openai", "ПолучитьСписокМоделей", Опции);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокМоделей", "OpenAI");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_OpenAIСписок(Результат);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
@@ -317,6 +317,7 @@
|
||||
НовыйТест(ТаблицаТестов, "OAI_Ассистенты" , "Ассистенты" , OpenAI);
|
||||
НовыйТест(ТаблицаТестов, "OAI_РаботаСФайлами" , "Работа с файлами" , OpenAI);
|
||||
НовыйТест(ТаблицаТестов, "OAI_РаботаСАудио" , "Работа с аудио" , OpenAI);
|
||||
НовыйТест(ТаблицаТестов, "OAI_РаботаСМоделями" , "Работа с моделями" , OpenAI);
|
||||
|
||||
Возврат ТаблицаТестов;
|
||||
|
||||
|
||||
@@ -633,7 +633,7 @@
|
||||
|
||||
// Получить список моделей
|
||||
// Получает список доступных моделей
|
||||
//
|
||||
//
|
||||
// Примечание:
|
||||
// Метод в документации API: [List models](@platform.openai.com/docs/api-reference/models/list)
|
||||
//
|
||||
@@ -652,7 +652,7 @@
|
||||
Ответ = OPI_ЗапросыHTTP.Get(URL, , ДопЗаголовки);
|
||||
|
||||
Возврат ПривестиКлючиКНижнемуРегистру(Ответ);
|
||||
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
+9
-9
@@ -2805,9 +2805,9 @@
|
||||
ПараметрыТеста = Новый Структура;
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("OpenAI_Token" , ПараметрыТеста);
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("OpenAI_URL" , ПараметрыТеста);
|
||||
|
||||
|
||||
OpenAI_ПолучитьСписокМоделей(ПараметрыТеста);
|
||||
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -23552,8 +23552,8 @@
|
||||
URL = ПараметрыФункции["OpenAI_URL"];
|
||||
Токен = ПараметрыФункции["OpenAI_Token"];
|
||||
|
||||
Файл = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
|
||||
|
||||
Файл = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
|
||||
|
||||
ИмяФайла = СтрШаблон("%1.png", Строка(Новый УникальныйИдентификатор()));
|
||||
Назначение = "assistants";
|
||||
|
||||
@@ -23732,14 +23732,14 @@
|
||||
|
||||
URL = ПараметрыФункции["OpenAI_URL"];
|
||||
Токен = ПараметрыФункции["OpenAI_Token"];
|
||||
|
||||
|
||||
Результат = OPI_OpenAI.ПолучитьСписокМоделей(URL, Токен);
|
||||
|
||||
// END
|
||||
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокМоделей", "OpenAI");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_OpenAIСписок(Результат);
|
||||
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
+15
-15
@@ -2678,9 +2678,9 @@
|
||||
ПараметрыТеста = Новый Структура;
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("OpenAI_Token" , ПараметрыТеста);
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("OpenAI_URL" , ПараметрыТеста);
|
||||
|
||||
|
||||
CLI_OpenAI_ПолучитьСписокМоделей(ПараметрыТеста);
|
||||
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -24869,7 +24869,7 @@
|
||||
Опции = Новый Структура;
|
||||
Опции.Вставить("role", "user");
|
||||
Опции.Вставить("text", "What is 1C:Enterprise?");
|
||||
|
||||
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("openai", "ПолучитьСтруктуруСообщения", Опции);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ПолучитьСтруктуруСообщения", "OpenAI");
|
||||
@@ -24887,7 +24887,7 @@
|
||||
Опции.Вставить("role" , "user");
|
||||
Опции.Вставить("file" , Картинка);
|
||||
Опции.Вставить("prompt", "What is in this image?");
|
||||
|
||||
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("openai", "ПолучитьСтруктуруСообщенияКартинки", Опции);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ПолучитьСтруктуруСообщенияКартинки", "OpenAI");
|
||||
@@ -24911,9 +24911,9 @@
|
||||
Опции.Вставить("model" , Модель);
|
||||
Опции.Вставить("input" , Текст);
|
||||
Опции.Вставить("options", ДопПараметры);
|
||||
|
||||
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("openai", "СгенерироватьРечь", Опции);
|
||||
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "СгенерироватьРечь", "OpenAI");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_ДвоичныеДанные(Результат, 137516);
|
||||
|
||||
@@ -24940,7 +24940,7 @@
|
||||
Опции.Вставить("model" , Модель);
|
||||
Опции.Вставить("audio" , Аудио);
|
||||
Опции.Вставить("type" , "audio/wav");
|
||||
|
||||
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("openai", "СоздатьТранскрипцию", Опции);
|
||||
|
||||
Попытка
|
||||
@@ -24959,13 +24959,13 @@
|
||||
URL = ПараметрыФункции["OpenAI_URL2"];
|
||||
Токен = ПараметрыФункции["OpenAI_Token2"];
|
||||
|
||||
Модель = "dall-e-3";
|
||||
|
||||
Модель = "dall-e-3";
|
||||
|
||||
Опции = Новый Структура;
|
||||
Опции.Вставить("prompt", "Yellow alpaca");
|
||||
Опции.Вставить("amount", 1);
|
||||
Опции.Вставить("size" , "1024x1024");
|
||||
|
||||
|
||||
Описание = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("openai", "ПолучитьСтруктуруОписанияКартинок", Опции);
|
||||
|
||||
Опции = Новый Структура;
|
||||
@@ -24973,7 +24973,7 @@
|
||||
Опции.Вставить("token" , Токен);
|
||||
Опции.Вставить("model" , Модель);
|
||||
Опции.Вставить("descr" , Описание);
|
||||
|
||||
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("openai", "ПолучитьКартинки", Опции);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ПолучитьКартинки", "OpenAI");
|
||||
@@ -24989,12 +24989,12 @@
|
||||
Опции = Новый Структура;
|
||||
Опции.Вставить("url" , URL);
|
||||
Опции.Вставить("token" , Токен);
|
||||
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("openai", "ПолучитьСписокМоделей", Опции);
|
||||
|
||||
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("openai", "ПолучитьСписокМоделей", Опции);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокМоделей", "OpenAI");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_OpenAIСписок(Результат);
|
||||
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
@@ -884,6 +884,37 @@
|
||||
НоваяСтрока.Описание = "Доп. заголовки запроса, если необходимо (необяз. по ум. - Пустое значение)";
|
||||
НоваяСтрока.Область = "Работа с аудио";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "openai";
|
||||
НоваяСтрока.Модуль = "OPI_OpenAI";
|
||||
НоваяСтрока.Метод = "ПолучитьСписокМоделей";
|
||||
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬСПИСОКМОДЕЛЕЙ";
|
||||
НоваяСтрока.Параметр = "--url";
|
||||
НоваяСтрока.Описание = "URL сервера OpenAI";
|
||||
НоваяСтрока.Область = "Работа с моделями";
|
||||
НоваяСтрока.ОписаниеМетода = "Получает список доступных моделей";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "openai";
|
||||
НоваяСтрока.Модуль = "OPI_OpenAI";
|
||||
НоваяСтрока.Метод = "ПолучитьСписокМоделей";
|
||||
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬСПИСОКМОДЕЛЕЙ";
|
||||
НоваяСтрока.Параметр = "--token";
|
||||
НоваяСтрока.Описание = "Токен авторизации OpenAI";
|
||||
НоваяСтрока.Область = "Работа с моделями";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "openai";
|
||||
НоваяСтрока.Модуль = "OPI_OpenAI";
|
||||
НоваяСтрока.Метод = "ПолучитьСписокМоделей";
|
||||
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬСПИСОКМОДЕЛЕЙ";
|
||||
НоваяСтрока.Параметр = "--headers";
|
||||
НоваяСтрока.Описание = "Доп. заголовки запроса, если необходимо (необяз. по ум. - Пустое значение)";
|
||||
НоваяСтрока.Область = "Работа с моделями";
|
||||
|
||||
Возврат ТаблицаСостава;
|
||||
КонецФункции
|
||||
|
||||
|
||||
Reference in New Issue
Block a user