1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-11-29 22:27:42 +02:00

Main build (Jenkins)

This commit is contained in:
Vitaly the Alpaca (bot)
2025-04-09 19:28:01 +03:00
parent 52ec184f30
commit b6733bd7be
31 changed files with 7622 additions and 6958 deletions

8
ci/clitesten vendored
View File

@@ -1796,6 +1796,14 @@ def test_ollama(){
powershell encoding: 'UTF-8', script:'./oint.exe ollama GetContextMessageStructure --empty "test" --debug --test '
}
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
powershell encoding: 'UTF-8', script:'./oint.exe ollama LoadModelToMemory --url "test" --model "test" --keep "test" --headers "test" --debug --test '
}
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
powershell encoding: 'UTF-8', script:'./oint.exe ollama UnloadModelFromMemory --url "test" --model "test" --headers "test" --debug --test '
}
}

8
ci/clitestru vendored
View File

@@ -1796,6 +1796,14 @@ def test_ollama(){
powershell encoding: 'UTF-8', script:'./oint.exe ollama ПолучитьСтруктуруСообщенияКонтекста --empty "test" --debug --test '
}
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
powershell encoding: 'UTF-8', script:'./oint.exe ollama ЗагрузитьМодельВПамять --url "test" --model "test" --keep "test" --headers "test" --debug --test '
}
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
powershell encoding: 'UTF-8', script:'./oint.exe ollama ВыгрузитьМодельИзПамяти --url "test" --model "test" --headers "test" --debug --test '
}
}

View File

@@ -0,0 +1,4 @@
{
"URL": "https://api.athenaeum.digital/ollama",
"Token": "10KO..."
}

View File

@@ -0,0 +1,4 @@
{
"URL": "https://api.athenaeum.digital/ollama",
"Token": "10KO..."
}

View File

@@ -0,0 +1,10 @@
 URL = "https://api.athenaeum.digital/ollama";
Token = "10KO..."; // Authorization - not part API Ollama
Model = "tinyllama";
Period = 500;
AdditionalHeaders = New Map;
AdditionalHeaders.Insert("Authorization", StrTemplate("Bearer %1", Token));
Result = OPI_Ollama.LoadModelToMemory(URL, Model, Period, AdditionalHeaders);

View File

@@ -0,0 +1,9 @@
 URL = "https://api.athenaeum.digital/ollama";
Token = "10KO..."; // Authorization - not part API Ollama
Model = "tinyllama";
AdditionalHeaders = New Map;
AdditionalHeaders.Insert("Authorization", StrTemplate("Bearer %1", Token));
Result = OPI_Ollama.UnloadModelFromMemory(URL, Model, AdditionalHeaders);

View File

@@ -0,0 +1,50 @@
---
sidebar_position: 1
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Load model to memory
Loads the selected model into RAM
`Function LoadModelToMemory(Val URL, Val Model, Val Period = 300, Val AdditionalHeaders = "") Export`
| Parameter | CLI option | Type | Required | Description |
|-|-|-|-|-|
| URL | --url | String | ✔ | Ollama server URL |
| Model | --model | String | ✔ | Models name |
| Period | --keep | Number | ✖ | Model hold time in seconds |
| AdditionalHeaders | --headers | Map Of KeyAndValue | ✖ | Additional request headers, if necessary |
Returns: Map Of KeyAndValue - Processing result
<br/>
:::tip
Method at API documentation: [Load a model](https://github.com/ollama/ollama/blob/main/docs/api.md#load-a-model)
:::
<br/>
```bsl title="1C:Enterprise/OneScript code example"
URL = "https://api.athenaeum.digital/ollama";
Token = "10KO..."; // Authorization - not part API Ollama
Model = "tinyllama";
Period = 500;
AdditionalHeaders = New Map;
AdditionalHeaders.Insert("Authorization", StrTemplate("Bearer %1", Token));
Result = OPI_Ollama.LoadModelToMemory(URL, Model, Period, AdditionalHeaders);
```

View File

@@ -0,0 +1,48 @@
---
sidebar_position: 2
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Unload model from memory
Unloads the selected model from memory
`Function UnloadModelFromMemory(Val URL, Val Model, Val AdditionalHeaders = "") Export`
| Parameter | CLI option | Type | Required | Description |
|-|-|-|-|-|
| URL | --url | String | &#x2714; | Ollama server URL |
| Model | --model | String | &#x2714; | Models name |
| AdditionalHeaders | --headers | Map Of KeyAndValue | &#x2716; | Additional request headers, if necessary |
Returns: Map Of KeyAndValue - Processing result
<br/>
:::tip
Method at API documentation: [Unload a model](https://github.com/ollama/ollama/blob/main/docs/api.md#unload-a-model)
:::
<br/>
```bsl title="1C:Enterprise/OneScript code example"
URL = "https://api.athenaeum.digital/ollama";
Token = "10KO..."; // Authorization - not part API Ollama
Model = "tinyllama";
AdditionalHeaders = New Map;
AdditionalHeaders.Insert("Authorization", StrTemplate("Bearer %1", Token));
Result = OPI_Ollama.UnloadModelFromMemory(URL, Model, AdditionalHeaders);
```

View File

@@ -0,0 +1,4 @@
{
"label": "Models management",
"position": "3"
}

View File

@@ -0,0 +1,4 @@
{
"URL": "https://api.athenaeum.digital/ollama",
"Токен": "10KO..."
}

View File

@@ -0,0 +1,4 @@
{
"URL": "https://api.athenaeum.digital/ollama",
"Токен": "10KO..."
}

View File

@@ -0,0 +1,9 @@
 URL = "https://api.athenaeum.digital/ollama";
Токен = "10KO..."; // Авторизация - не часть API Ollama
Модель = "tinyllama";
ДопЗаголовки = Новый Соответствие;
ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
Результат = OPI_Ollama.ВыгрузитьМодельИзПамяти(URL, Модель, ДопЗаголовки);

View File

@@ -0,0 +1,10 @@
 URL = "https://api.athenaeum.digital/ollama";
Токен = "10KO..."; // Авторизация - не часть API Ollama
Модель = "tinyllama";
Период = 500;
ДопЗаголовки = Новый Соответствие;
ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
Результат = OPI_Ollama.ЗагрузитьМодельВПамять(URL, Модель, Период, ДопЗаголовки);

View File

@@ -0,0 +1,50 @@
---
sidebar_position: 1
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Загрузить модель в память
Загружает выбранную модель в оперативную память
`Функция ЗагрузитьМодельВПамять(Знач URL, Знач Модель, Знач Период = 300, Знач ДопЗаголовки = "") Экспорт`
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|-|-|-|-|-|
| URL | --url | Строка | &#x2714; | URL сервера Ollama |
| Модель | --model | Строка | &#x2714; | Имя модели |
| Период | --keep | Число | &#x2716; | Время удержания модели в памяти в секундах |
| ДопЗаголовки | --headers | Соответствие Из КлючИЗначение | &#x2716; | Доп заголовки запроса, если необходимо |
Возвращаемое значение: Соответствие Из КлючИЗначение - Результат обработки
<br/>
:::tip
Метод в документации API: [Load a model](https://github.com/ollama/ollama/blob/main/docs/api.md#load-a-model)
:::
<br/>
```bsl title="Пример использования для 1С:Предприятие/OneScript"
URL = "https://api.athenaeum.digital/ollama";
Токен = "10KO..."; // Авторизация - не часть API Ollama
Модель = "tinyllama";
Период = 500;
ДопЗаголовки = Новый Соответствие;
ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
Результат = OPI_Ollama.ЗагрузитьМодельВПамять(URL, Модель, Период, ДопЗаголовки);
```

View File

@@ -0,0 +1,48 @@
---
sidebar_position: 2
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Выгрузить модель из памяти
Выгружает выбранную модель из памяти
`Функция ВыгрузитьМодельИзПамяти(Знач URL, Знач Модель, Знач ДопЗаголовки = "") Экспорт`
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|-|-|-|-|-|
| URL | --url | Строка | &#x2714; | URL сервера Ollama |
| Модель | --model | Строка | &#x2714; | Имя модели |
| ДопЗаголовки | --headers | Соответствие Из КлючИЗначение | &#x2716; | Доп заголовки запроса, если необходимо |
Возвращаемое значение: Соответствие Из КлючИЗначение - Результат обработки
<br/>
:::tip
Метод в документации API: [Unload a model](https://github.com/ollama/ollama/blob/main/docs/api.md#unload-a-model)
:::
<br/>
```bsl title="Пример использования для 1С:Предприятие/OneScript"
URL = "https://api.athenaeum.digital/ollama";
Токен = "10KO..."; // Авторизация - не часть API Ollama
Модель = "tinyllama";
ДопЗаголовки = Новый Соответствие;
ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
Результат = OPI_Ollama.ВыгрузитьМодельИзПамяти(URL, Модель, ДопЗаголовки);
```

View File

@@ -0,0 +1,4 @@
{
"label": "Работа с моделями",
"position": "3"
}

File diff suppressed because it is too large Load Diff

View File

@@ -203,6 +203,74 @@ EndFunction
#EndRegion
#Region ModelsManagement
// Load model to memory
// Loads the selected model into RAM
//
// Note
// Method at API documentation: [Load a model](@github.com/ollama/ollama/blob/main/docs/api.md#load-a-model)
//
// Parameters:
// URL - String - Ollama server URL - url
// Model - String - Models name - model
// Period - Number - Model hold time in seconds - keep
// AdditionalHeaders - Map Of KeyAndValue - Additional request headers, if necessary - headers
//
// Returns:
// Map Of KeyAndValue - Processing result
Function LoadModelToMemory(Val URL, Val Model, Val Period = 300, Val AdditionalHeaders = "") Export
CompleteURL(URL, "api/generate");
Parameters = New Structure;
OPI_Tools.AddField("model" , Model , "String" , Parameters);
OPI_Tools.AddField("keep_alive", Period, "Number" , Parameters);
HeadersProcessing(AdditionalHeaders);
Response = OPI_Tools.Post(URL, Parameters, AdditionalHeaders);
Return Response;
EndFunction
// Unload model from memory
// Unloads the selected model from memory
//
// Note
// Method at API documentation: [Unload a model](@github.com/ollama/ollama/blob/main/docs/api.md#unload-a-model)
//
// Parameters:
// URL - String - Ollama server URL - url
// Model - String - Models name - model
// AdditionalHeaders - Map Of KeyAndValue - Additional request headers, if necessary - headers
//
// Returns:
// Map Of KeyAndValue - Processing result
Function UnloadModelFromMemory(Val URL, Val Model, Val AdditionalHeaders = "") Export
CompleteURL(URL, "api/generate");
Parameters = New Structure;
Parameters.Insert("keep_alive", 0);
OPI_Tools.AddField("model", Model, "String", Parameters);
HeadersProcessing(AdditionalHeaders);
Response = OPI_Tools.Post(URL, Parameters, AdditionalHeaders);
Return Response;
EndFunction
#EndRegion
#EndRegion
#Region Private
Procedure CompleteURL(URL, Val Path)
OPI_TypeConversion.GetLine(URL);
@@ -238,4 +306,5 @@ Procedure HeadersProcessing(AdditionalHeaders)
EndProcedure
#EndRegion

View File

@@ -2576,6 +2576,8 @@ Procedure OLLM_RequestsProcessing() Export
Ollama_GetResponse(TestParameters);
Ollama_GetContextResponse(TestParameters);
Ollama_LoadModelToMemory(TestParameters);
Ollama_UnloadModelFromMemory(TestParameters);
EndProcedure
@@ -20523,6 +20525,45 @@ Procedure Ollama_GetContextResponse(FunctionParameters)
EndProcedure
Procedure Ollama_LoadModelToMemory(FunctionParameters)
URL = FunctionParameters["Ollama_URL"];
Token = FunctionParameters["Ollama_Token"]; // Authorization - not part API Ollama
Model = "tinyllama";
Period = 500;
AdditionalHeaders = New Map;
AdditionalHeaders.Insert("Authorization", StrTemplate("Bearer %1", Token));
Result = OPI_Ollama.LoadModelToMemory(URL, Model, Period, AdditionalHeaders);
// END
OPI_TestDataRetrieval.WriteLog(Result, "LoadModelToMemory", "Ollama");
OPI_TestDataRetrieval.Check_OllamaLoadUnload(Result, False);
EndProcedure
Procedure Ollama_UnloadModelFromMemory(FunctionParameters)
URL = FunctionParameters["Ollama_URL"];
Token = FunctionParameters["Ollama_Token"]; // Authorization - not part API Ollama
Model = "tinyllama";
AdditionalHeaders = New Map;
AdditionalHeaders.Insert("Authorization", StrTemplate("Bearer %1", Token));
Result = OPI_Ollama.UnloadModelFromMemory(URL, Model, AdditionalHeaders);
// END
OPI_TestDataRetrieval.WriteLog(Result, "UnloadModelFromMemory", "Ollama");
OPI_TestDataRetrieval.Check_OllamaLoadUnload(Result, True);
EndProcedure
#EndRegion
#EndRegion

View File

@@ -2330,6 +2330,19 @@ Procedure Check_OllamaResponse(Val Result, Val Completed = True) Export
EndProcedure
Procedure Check_OllamaLoadUnload(Val Result, Val Unload) Export
ExpectsThat(Result["model"]).Заполнено();
ExpectsThat(Result["done"]).Равно(True);
If Unload Then
ExpectsThat(Result["done_reason"]).Равно("unload");
Else
ExpectsThat(Result["done_reason"]).Равно("load");
EndIf;
EndProcedure
Procedure Check_OllamaMessage(Val Result, Val Completed = True) Export
ExpectsThat(Result["model"]).Заполнено();

View File

@@ -203,6 +203,74 @@ EndFunction
#EndRegion
#Region ModelsManagement
// Load model to memory
// Loads the selected model into RAM
//
// Note
// Method at API documentation: [Load a model](@github.com/ollama/ollama/blob/main/docs/api.md#load-a-model)
//
// Parameters:
// URL - String - Ollama server URL - url
// Model - String - Models name - model
// Period - Number - Model hold time in seconds - keep
// AdditionalHeaders - Map Of KeyAndValue - Additional request headers, if necessary - headers
//
// Returns:
// Map Of KeyAndValue - Processing result
Function LoadModelToMemory(Val URL, Val Model, Val Period = 300, Val AdditionalHeaders = "") Export
CompleteURL(URL, "api/generate");
Parameters = New Structure;
OPI_Tools.AddField("model" , Model , "String" , Parameters);
OPI_Tools.AddField("keep_alive", Period, "Number" , Parameters);
HeadersProcessing(AdditionalHeaders);
Response = OPI_Tools.Post(URL, Parameters, AdditionalHeaders);
Return Response;
EndFunction
// Unload model from memory
// Unloads the selected model from memory
//
// Note
// Method at API documentation: [Unload a model](@github.com/ollama/ollama/blob/main/docs/api.md#unload-a-model)
//
// Parameters:
// URL - String - Ollama server URL - url
// Model - String - Models name - model
// AdditionalHeaders - Map Of KeyAndValue - Additional request headers, if necessary - headers
//
// Returns:
// Map Of KeyAndValue - Processing result
Function UnloadModelFromMemory(Val URL, Val Model, Val AdditionalHeaders = "") Export
CompleteURL(URL, "api/generate");
Parameters = New Structure;
Parameters.Insert("keep_alive", 0);
OPI_Tools.AddField("model", Model, "String", Parameters);
HeadersProcessing(AdditionalHeaders);
Response = OPI_Tools.Post(URL, Parameters, AdditionalHeaders);
Return Response;
EndFunction
#EndRegion
#EndRegion
#Region Private
Procedure CompleteURL(URL, Val Path)
OPI_TypeConversion.GetLine(URL);
@@ -238,4 +306,5 @@ Procedure HeadersProcessing(AdditionalHeaders)
EndProcedure
#EndRegion

View File

@@ -2330,6 +2330,19 @@ Procedure Check_OllamaResponse(Val Result, Val Completed = True) Export
EndProcedure
Procedure Check_OllamaLoadUnload(Val Result, Val Unload) Export
ExpectsThat(Result["model"]).Заполнено();
ExpectsThat(Result["done"]).Равно(True);
If Unload Then
ExpectsThat(Result["done_reason"]).Равно("unload");
Else
ExpectsThat(Result["done_reason"]).Равно("load");
EndIf;
EndProcedure
Procedure Check_OllamaMessage(Val Result, Val Completed = True) Export
ExpectsThat(Result["model"]).Заполнено();

View File

@@ -2576,6 +2576,8 @@ Procedure OLLM_RequestsProcessing() Export
Ollama_GetResponse(TestParameters);
Ollama_GetContextResponse(TestParameters);
Ollama_LoadModelToMemory(TestParameters);
Ollama_UnloadModelFromMemory(TestParameters);
EndProcedure
@@ -20523,6 +20525,45 @@ Procedure Ollama_GetContextResponse(FunctionParameters)
EndProcedure
Procedure Ollama_LoadModelToMemory(FunctionParameters)
URL = FunctionParameters["Ollama_URL"];
Token = FunctionParameters["Ollama_Token"]; // Authorization - not part API Ollama
Model = "tinyllama";
Period = 500;
AdditionalHeaders = New Map;
AdditionalHeaders.Insert("Authorization", StrTemplate("Bearer %1", Token));
Result = OPI_Ollama.LoadModelToMemory(URL, Model, Period, AdditionalHeaders);
// END
OPI_TestDataRetrieval.WriteLog(Result, "LoadModelToMemory", "Ollama");
OPI_TestDataRetrieval.Check_OllamaLoadUnload(Result, False);
EndProcedure
Procedure Ollama_UnloadModelFromMemory(FunctionParameters)
URL = FunctionParameters["Ollama_URL"];
Token = FunctionParameters["Ollama_Token"]; // Authorization - not part API Ollama
Model = "tinyllama";
AdditionalHeaders = New Map;
AdditionalHeaders.Insert("Authorization", StrTemplate("Bearer %1", Token));
Result = OPI_Ollama.UnloadModelFromMemory(URL, Model, AdditionalHeaders);
// END
OPI_TestDataRetrieval.WriteLog(Result, "UnloadModelFromMemory", "Ollama");
OPI_TestDataRetrieval.Check_OllamaLoadUnload(Result, True);
EndProcedure
#EndRegion
#EndRegion

View File

@@ -144,6 +144,78 @@
NewLine.Область = "Requests processing";
NewLine.ОписаниеМетода = "Gets the message structure for a list of request messages in context";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ollama";
NewLine.Модуль = "OPI_Ollama";
NewLine.Метод = "LoadModelToMemory";
NewLine.МетодПоиска = "LOADMODELTOMEMORY";
NewLine.Параметр = "--url";
NewLine.Описание = "Ollama server URL";
NewLine.Область = "Models management";
NewLine.ОписаниеМетода = "Loads the selected model into RAM";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ollama";
NewLine.Модуль = "OPI_Ollama";
NewLine.Метод = "LoadModelToMemory";
NewLine.МетодПоиска = "LOADMODELTOMEMORY";
NewLine.Параметр = "--model";
NewLine.Описание = "Models name";
NewLine.Область = "Models management";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ollama";
NewLine.Модуль = "OPI_Ollama";
NewLine.Метод = "LoadModelToMemory";
NewLine.МетодПоиска = "LOADMODELTOMEMORY";
NewLine.Параметр = "--keep";
NewLine.Описание = "Model hold time in seconds (optional, def. val. - 300)";
NewLine.Область = "Models management";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ollama";
NewLine.Модуль = "OPI_Ollama";
NewLine.Метод = "LoadModelToMemory";
NewLine.МетодПоиска = "LOADMODELTOMEMORY";
NewLine.Параметр = "--headers";
NewLine.Описание = "Additional request headers, if necessary (optional, def. val. - Empty value)";
NewLine.Область = "Models management";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ollama";
NewLine.Модуль = "OPI_Ollama";
NewLine.Метод = "UnloadModelFromMemory";
NewLine.МетодПоиска = "UNLOADMODELFROMMEMORY";
NewLine.Параметр = "--url";
NewLine.Описание = "Ollama server URL";
NewLine.Область = "Models management";
NewLine.ОписаниеМетода = "Unloads the selected model from memory";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ollama";
NewLine.Модуль = "OPI_Ollama";
NewLine.Метод = "UnloadModelFromMemory";
NewLine.МетодПоиска = "UNLOADMODELFROMMEMORY";
NewLine.Параметр = "--model";
NewLine.Описание = "Models name";
NewLine.Область = "Models management";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ollama";
NewLine.Модуль = "OPI_Ollama";
NewLine.Метод = "UnloadModelFromMemory";
NewLine.МетодПоиска = "UNLOADMODELFROMMEMORY";
NewLine.Параметр = "--headers";
NewLine.Описание = "Additional request headers, if necessary (optional, def. val. - Empty value)";
NewLine.Область = "Models management";
Return CompositionTable;
EndFunction

View File

@@ -207,7 +207,7 @@
// Загрузить модель в память
// Загружает выбранную модель в оперативную память
//
//
// Примечание:
// Метод в документации API: [Load a model](@github.com/ollama/ollama/blob/main/docs/api.md#load-a-model)
//
@@ -216,7 +216,7 @@
// Модель - Строка - Имя модели - model
// Период - Число - Время удержания модели в памяти в секундах - keep
// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп заголовки запроса, если необходимо - headers
//
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - Результат обработки
Функция ЗагрузитьМодельВПамять(Знач URL, Знач Модель, Знач Период = 300, Знач ДопЗаголовки = "") Экспорт
@@ -226,18 +226,18 @@
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("model" , Модель, "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("keep_alive", Период, "Число" , Параметры);
ОбработатьЗаголовки(ДопЗаголовки);
Ответ = OPI_Инструменты.Post(URL, Параметры, ДопЗаголовки);
Возврат Ответ;
КонецФункции
// Выгрузить модель из памяти
// Выгружает выбранную модель из памяти
//
//
// Примечание:
// Метод в документации API: [Unload a model](@github.com/ollama/ollama/blob/main/docs/api.md#unload-a-model)
//
@@ -245,7 +245,7 @@
// URL - Строка - URL сервера Ollama - url
// Модель - Строка - Имя модели - model
// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп заголовки запроса, если необходимо - headers
//
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - Результат обработки
Функция ВыгрузитьМодельИзПамяти(Знач URL, Знач Модель, Знач ДопЗаголовки = "") Экспорт
@@ -254,15 +254,15 @@
Параметры = Новый Структура;
Параметры.Вставить("keep_alive", 0);
OPI_Инструменты.ДобавитьПоле("model", Модель, "Строка", Параметры);
ОбработатьЗаголовки(ДопЗаголовки);
Ответ = OPI_Инструменты.Post(URL, Параметры, ДопЗаголовки);
Возврат Ответ;
КонецФункции
#КонецОбласти

View File

@@ -20532,7 +20532,7 @@
Модель = "tinyllama";
Период = 500;
ДопЗаголовки = Новый Соответствие;
ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
@@ -20542,7 +20542,7 @@
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ЗагрузитьМодельВПамять", "Ollama");
OPI_ПолучениеДанныхТестов.Проверка_OllamaЗагрузкаВыгрузка(Результат, Ложь);
КонецПроцедуры
Процедура Ollama_ВыгрузитьМодельИзПамяти(ПараметрыФункции)
@@ -20551,7 +20551,7 @@
Токен = ПараметрыФункции["Ollama_Token"]; // Авторизация - не часть API Ollama
Модель = "tinyllama";
ДопЗаголовки = Новый Соответствие;
ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
@@ -20561,7 +20561,7 @@
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ВыгрузитьМодельИзПамяти", "Ollama");
OPI_ПолучениеДанныхТестов.Проверка_OllamaЗагрузкаВыгрузка(Результат, Истина);
КонецПроцедуры
#КонецОбласти

View File

@@ -2334,7 +2334,7 @@
ОжидаетЧто(Результат["model"]).Заполнено();
ОжидаетЧто(Результат["done"]).Равно(Истина);
Если Выгрузка Тогда
ОжидаетЧто(Результат["done_reason"]).Равно("unload");
Иначе
@@ -2387,9 +2387,9 @@
КонецФункции
Функция ПолучитьОбщийМодуль(Знач Имя)
Модуль = Вычислить(Имя);
Возврат Модуль;
КонецФункции

View File

@@ -207,7 +207,7 @@
// Загрузить модель в память
// Загружает выбранную модель в оперативную память
//
//
// Примечание:
// Метод в документации API: [Load a model](@github.com/ollama/ollama/blob/main/docs/api.md#load-a-model)
//
@@ -216,7 +216,7 @@
// Модель - Строка - Имя модели - model
// Период - Число - Время удержания модели в памяти в секундах - keep
// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп заголовки запроса, если необходимо - headers
//
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - Результат обработки
Функция ЗагрузитьМодельВПамять(Знач URL, Знач Модель, Знач Период = 300, Знач ДопЗаголовки = "") Экспорт
@@ -226,18 +226,18 @@
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("model" , Модель, "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("keep_alive", Период, "Число" , Параметры);
ОбработатьЗаголовки(ДопЗаголовки);
Ответ = OPI_Инструменты.Post(URL, Параметры, ДопЗаголовки);
Возврат Ответ;
КонецФункции
// Выгрузить модель из памяти
// Выгружает выбранную модель из памяти
//
//
// Примечание:
// Метод в документации API: [Unload a model](@github.com/ollama/ollama/blob/main/docs/api.md#unload-a-model)
//
@@ -245,7 +245,7 @@
// URL - Строка - URL сервера Ollama - url
// Модель - Строка - Имя модели - model
// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп заголовки запроса, если необходимо - headers
//
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - Результат обработки
Функция ВыгрузитьМодельИзПамяти(Знач URL, Знач Модель, Знач ДопЗаголовки = "") Экспорт
@@ -254,15 +254,15 @@
Параметры = Новый Структура;
Параметры.Вставить("keep_alive", 0);
OPI_Инструменты.ДобавитьПоле("model", Модель, "Строка", Параметры);
ОбработатьЗаголовки(ДопЗаголовки);
Ответ = OPI_Инструменты.Post(URL, Параметры, ДопЗаголовки);
Возврат Ответ;
КонецФункции
#КонецОбласти

View File

@@ -2334,7 +2334,7 @@
ОжидаетЧто(Результат["model"]).Заполнено();
ОжидаетЧто(Результат["done"]).Равно(Истина);
Если Выгрузка Тогда
ОжидаетЧто(Результат["done_reason"]).Равно("unload");
Иначе

View File

@@ -20532,7 +20532,7 @@
Модель = "tinyllama";
Период = 500;
ДопЗаголовки = Новый Соответствие;
ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
@@ -20542,7 +20542,7 @@
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ЗагрузитьМодельВПамять", "Ollama");
OPI_ПолучениеДанныхТестов.Проверка_OllamaЗагрузкаВыгрузка(Результат, Ложь);
КонецПроцедуры
Процедура Ollama_ВыгрузитьМодельИзПамяти(ПараметрыФункции)
@@ -20551,7 +20551,7 @@
Токен = ПараметрыФункции["Ollama_Token"]; // Авторизация - не часть API Ollama
Модель = "tinyllama";
ДопЗаголовки = Новый Соответствие;
ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
@@ -20561,7 +20561,7 @@
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ВыгрузитьМодельИзПамяти", "Ollama");
OPI_ПолучениеДанныхТестов.Проверка_OllamaЗагрузкаВыгрузка(Результат, Истина);
КонецПроцедуры
#КонецОбласти

View File

@@ -148,6 +148,78 @@
НоваяСтрока.Область = "Обработка запросов";
НоваяСтрока.ОписаниеМетода = "Получает структуру сообщения для списка сообщений запроса в контексте";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ollama";
НоваяСтрока.Модуль = "OPI_Ollama";
НоваяСтрока.Метод = "ЗагрузитьМодельВПамять";
НоваяСтрока.МетодПоиска = "ЗАГРУЗИТЬМОДЕЛЬВПАМЯТЬ";
НоваяСтрока.Параметр = "--url";
НоваяСтрока.Описание = "URL сервера Ollama";
НоваяСтрока.Область = "Работа с моделями";
НоваяСтрока.ОписаниеМетода = "Загружает выбранную модель в оперативную память";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ollama";
НоваяСтрока.Модуль = "OPI_Ollama";
НоваяСтрока.Метод = "ЗагрузитьМодельВПамять";
НоваяСтрока.МетодПоиска = "ЗАГРУЗИТЬМОДЕЛЬВПАМЯТЬ";
НоваяСтрока.Параметр = "--model";
НоваяСтрока.Описание = "Имя модели";
НоваяСтрока.Область = "Работа с моделями";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ollama";
НоваяСтрока.Модуль = "OPI_Ollama";
НоваяСтрока.Метод = "ЗагрузитьМодельВПамять";
НоваяСтрока.МетодПоиска = "ЗАГРУЗИТЬМОДЕЛЬВПАМЯТЬ";
НоваяСтрока.Параметр = "--keep";
НоваяСтрока.Описание = "Время удержания модели в памяти в секундах (необяз. по ум. - 300)";
НоваяСтрока.Область = "Работа с моделями";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ollama";
НоваяСтрока.Модуль = "OPI_Ollama";
НоваяСтрока.Метод = "ЗагрузитьМодельВПамять";
НоваяСтрока.МетодПоиска = "ЗАГРУЗИТЬМОДЕЛЬВПАМЯТЬ";
НоваяСтрока.Параметр = "--headers";
НоваяСтрока.Описание = "Доп заголовки запроса, если необходимо (необяз. по ум. - Пустое значение)";
НоваяСтрока.Область = "Работа с моделями";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ollama";
НоваяСтрока.Модуль = "OPI_Ollama";
НоваяСтрока.Метод = "ВыгрузитьМодельИзПамяти";
НоваяСтрока.МетодПоиска = "ВЫГРУЗИТЬМОДЕЛЬИЗПАМЯТИ";
НоваяСтрока.Параметр = "--url";
НоваяСтрока.Описание = "URL сервера Ollama";
НоваяСтрока.Область = "Работа с моделями";
НоваяСтрока.ОписаниеМетода = "Выгружает выбранную модель из памяти";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ollama";
НоваяСтрока.Модуль = "OPI_Ollama";
НоваяСтрока.Метод = "ВыгрузитьМодельИзПамяти";
НоваяСтрока.МетодПоиска = "ВЫГРУЗИТЬМОДЕЛЬИЗПАМЯТИ";
НоваяСтрока.Параметр = "--model";
НоваяСтрока.Описание = "Имя модели";
НоваяСтрока.Область = "Работа с моделями";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ollama";
НоваяСтрока.Модуль = "OPI_Ollama";
НоваяСтрока.Метод = "ВыгрузитьМодельИзПамяти";
НоваяСтрока.МетодПоиска = "ВЫГРУЗИТЬМОДЕЛЬИЗПАМЯТИ";
НоваяСтрока.Параметр = "--headers";
НоваяСтрока.Описание = "Доп заголовки запроса, если необходимо (необяз. по ум. - Пустое значение)";
НоваяСтрока.Область = "Работа с моделями";
Возврат ТаблицаСостава;
КонецФункции