You've already forked OpenIntegrations
mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-08-24 19:49:22 +02:00
OLLAMA: Методы моделей
This commit is contained in:
14098
service/dictionaries/en.json
vendored
14098
service/dictionaries/en.json
vendored
File diff suppressed because it is too large
Load Diff
86
src/ru/OInt/core/Modules/OPI_Ollama.os
vendored
86
src/ru/OInt/core/Modules/OPI_Ollama.os
vendored
@@ -205,6 +205,61 @@
|
||||
|
||||
#Область РаботаСМоделями
|
||||
|
||||
// Получить список моделей
|
||||
// Получает список локальных моделей
|
||||
//
|
||||
// Примечание:
|
||||
// Метод в документации API: [List Local Models](@github.com/ollama/ollama/blob/main/docs/api.md#list-local-models)
|
||||
//
|
||||
// Параметры:
|
||||
// URL - Строка - URL сервера Ollama - url
|
||||
// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп заголовки запроса, если необходимо - headers
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - Результат обработки
|
||||
Функция ПолучитьСписокМоделей(Знач URL, Знач ДопЗаголовки = "") Экспорт
|
||||
|
||||
ДополнитьURL(URL, "api/tags");
|
||||
|
||||
ОбработатьЗаголовки(ДопЗаголовки);
|
||||
|
||||
Ответ = OPI_Инструменты.Get(URL, , ДопЗаголовки);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Получить информацию о модели
|
||||
// Получает информацию о выбранной модели
|
||||
//
|
||||
// Примечание:
|
||||
// Метод в документации API: [Show Model Information](@github.com/ollama/ollama/blob/main/docs/api.md#show-model-information)
|
||||
//
|
||||
// Параметры:
|
||||
// URL - Строка - URL сервера Ollama - url
|
||||
// Модель - Строка - Имя модели - model
|
||||
// Подробно - Булево - Возврат полной информации о модели - verbose
|
||||
// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп заголовки запроса, если необходимо - headers
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - Результат обработки
|
||||
Функция ПолучитьИнформациюОМодели(Знач URL, Знач Модель, Знач Подробно = Истина, Знач ДопЗаголовки = "") Экспорт
|
||||
|
||||
ДополнитьURL(URL, "api/show");
|
||||
|
||||
Параметры = Новый Структура;
|
||||
|
||||
OPI_Инструменты.ДобавитьПоле("model" , Модель , "Строка", Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("verbose", Подробно, "Булево", Параметры);
|
||||
|
||||
ОбработатьЗаголовки(ДопЗаголовки);
|
||||
|
||||
Ответ = OPI_Инструменты.Post(URL, Параметры, ДопЗаголовки);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Создать модель
|
||||
// Создает новую модель с заданными настройками
|
||||
//
|
||||
@@ -237,6 +292,37 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Копировать модель
|
||||
// Копирует существующую модель
|
||||
//
|
||||
// Примечание:
|
||||
// Метод в документации API: [Copy a Model](@github.com/ollama/ollama/blob/main/docs/api.md#copy-a-model)
|
||||
//
|
||||
// Параметры:
|
||||
// URL - Строка - URL сервера Ollama - url
|
||||
// Модель - Строка - Имя существующей модели - model
|
||||
// Имя - Строка - Имя новой модели - name
|
||||
// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп заголовки запроса, если необходимо - headers
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - Результат обработки
|
||||
Функция КопироватьМодель(Знач URL, Знач Модель, Знач Имя, Знач ДопЗаголовки = "") Экспорт
|
||||
|
||||
ДополнитьURL(URL, "api/copy");
|
||||
|
||||
Параметры = Новый Структура;
|
||||
|
||||
OPI_Инструменты.ДобавитьПоле("source" , Модель, "Строка", Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("destination", Имя , "Строка", Параметры);
|
||||
|
||||
ОбработатьЗаголовки(ДопЗаголовки);
|
||||
|
||||
Ответ = OPI_Инструменты.Post(URL, Параметры, ДопЗаголовки);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Удалить модель
|
||||
// Удаляет существующую модель
|
||||
//
|
||||
|
61
src/ru/OInt/tests/Modules/internal/OPI_Тесты.os
vendored
61
src/ru/OInt/tests/Modules/internal/OPI_Тесты.os
vendored
@@ -2591,6 +2591,9 @@
|
||||
Ollama_ЗагрузитьМодельВПамять(ПараметрыТеста);
|
||||
Ollama_ВыгрузитьМодельИзПамяти(ПараметрыТеста);
|
||||
Ollama_СоздатьМодель(ПараметрыТеста);
|
||||
Ollama_ПолучитьИнформациюОМодели(ПараметрыТеста);
|
||||
Ollama_ПолучитьСписокМоделей(ПараметрыТеста);
|
||||
Ollama_КопироватьМодель(ПараметрыТеста);
|
||||
Ollama_УдалитьМодель(ПараметрыТеста);
|
||||
|
||||
КонецПроцедуры
|
||||
@@ -20746,6 +20749,64 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Ollama_ПолучитьСписокМоделей(ПараметрыФункции)
|
||||
|
||||
URL = ПараметрыФункции["Ollama_URL"];
|
||||
Токен = ПараметрыФункции["Ollama_Token"]; // Авторизация - не часть API Ollama
|
||||
|
||||
ДопЗаголовки = Новый Соответствие;
|
||||
ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
|
||||
|
||||
Результат = OPI_Ollama.ПолучитьСписокМоделей(URL, ДопЗаголовки);
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокМоделей", "Ollama");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_OllamaМодели(Результат);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Ollama_ПолучитьИнформациюОМодели(ПараметрыФункции)
|
||||
|
||||
URL = ПараметрыФункции["Ollama_URL"];
|
||||
Токен = ПараметрыФункции["Ollama_Token"]; // Авторизация - не часть API Ollama
|
||||
|
||||
Модель = "mario";
|
||||
|
||||
ДопЗаголовки = Новый Соответствие;
|
||||
ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
|
||||
|
||||
Результат = OPI_Ollama.ПолучитьИнформациюОМодели(URL, Модель, Ложь, ДопЗаголовки);
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьИнформациюОМодели", "Ollama");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_OllamaИнформацияМодели(Результат);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Ollama_КопироватьМодель(ПараметрыФункции)
|
||||
|
||||
URL = ПараметрыФункции["Ollama_URL"];
|
||||
Токен = ПараметрыФункции["Ollama_Token"]; // Авторизация - не часть API Ollama
|
||||
|
||||
Модель = "mario";
|
||||
Имя = "mario2";
|
||||
|
||||
ДопЗаголовки = Новый Соответствие;
|
||||
ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
|
||||
|
||||
Результат = OPI_Ollama.КопироватьМодель(URL, Модель, Имя, ДопЗаголовки);
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "КопироватьМодель", "Ollama");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_Пусто(Результат);
|
||||
|
||||
Результат = OPI_Ollama.УдалитьМодель(URL, Имя, ДопЗаголовки);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
@@ -2364,6 +2364,19 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Проверка_OllamaМодели(Знач Результат) Экспорт
|
||||
|
||||
ОжидаетЧто(Результат["models"]).ИмеетТип("Массив");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Проверка_OllamaИнформацияМодели(Знач Результат) Экспорт
|
||||
|
||||
ОжидаетЧто(Результат["parameters"]).Заполнено();
|
||||
ОжидаетЧто(Результат["model_info"]).Заполнено();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
@@ -2400,9 +2413,9 @@
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьОбщийМодуль(Знач Имя)
|
||||
|
||||
|
||||
Модуль = Вычислить(Имя);
|
||||
|
||||
|
||||
Возврат Модуль;
|
||||
КонецФункции
|
||||
|
||||
|
@@ -205,6 +205,61 @@
|
||||
|
||||
#Область РаботаСМоделями
|
||||
|
||||
// Получить список моделей
|
||||
// Получает список локальных моделей
|
||||
//
|
||||
// Примечание:
|
||||
// Метод в документации API: [List Local Models](@github.com/ollama/ollama/blob/main/docs/api.md#list-local-models)
|
||||
//
|
||||
// Параметры:
|
||||
// URL - Строка - URL сервера Ollama - url
|
||||
// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп заголовки запроса, если необходимо - headers
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - Результат обработки
|
||||
Функция ПолучитьСписокМоделей(Знач URL, Знач ДопЗаголовки = "") Экспорт
|
||||
|
||||
ДополнитьURL(URL, "api/tags");
|
||||
|
||||
ОбработатьЗаголовки(ДопЗаголовки);
|
||||
|
||||
Ответ = OPI_Инструменты.Get(URL, , ДопЗаголовки);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Получить информацию о модели
|
||||
// Получает информацию о выбранной модели
|
||||
//
|
||||
// Примечание:
|
||||
// Метод в документации API: [Show Model Information](@github.com/ollama/ollama/blob/main/docs/api.md#show-model-information)
|
||||
//
|
||||
// Параметры:
|
||||
// URL - Строка - URL сервера Ollama - url
|
||||
// Модель - Строка - Имя модели - model
|
||||
// Подробно - Булево - Возврат полной информации о модели - verbose
|
||||
// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп заголовки запроса, если необходимо - headers
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - Результат обработки
|
||||
Функция ПолучитьИнформациюОМодели(Знач URL, Знач Модель, Знач Подробно = Истина, Знач ДопЗаголовки = "") Экспорт
|
||||
|
||||
ДополнитьURL(URL, "api/show");
|
||||
|
||||
Параметры = Новый Структура;
|
||||
|
||||
OPI_Инструменты.ДобавитьПоле("model" , Модель , "Строка", Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("verbose", Подробно, "Булево", Параметры);
|
||||
|
||||
ОбработатьЗаголовки(ДопЗаголовки);
|
||||
|
||||
Ответ = OPI_Инструменты.Post(URL, Параметры, ДопЗаголовки);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Создать модель
|
||||
// Создает новую модель с заданными настройками
|
||||
//
|
||||
@@ -237,6 +292,37 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Копировать модель
|
||||
// Копирует существующую модель
|
||||
//
|
||||
// Примечание:
|
||||
// Метод в документации API: [Copy a Model](@github.com/ollama/ollama/blob/main/docs/api.md#copy-a-model)
|
||||
//
|
||||
// Параметры:
|
||||
// URL - Строка - URL сервера Ollama - url
|
||||
// Модель - Строка - Имя существующей модели - model
|
||||
// Имя - Строка - Имя новой модели - name
|
||||
// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп заголовки запроса, если необходимо - headers
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - Результат обработки
|
||||
Функция КопироватьМодель(Знач URL, Знач Модель, Знач Имя, Знач ДопЗаголовки = "") Экспорт
|
||||
|
||||
ДополнитьURL(URL, "api/copy");
|
||||
|
||||
Параметры = Новый Структура;
|
||||
|
||||
OPI_Инструменты.ДобавитьПоле("source" , Модель, "Строка", Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("destination", Имя , "Строка", Параметры);
|
||||
|
||||
ОбработатьЗаголовки(ДопЗаголовки);
|
||||
|
||||
Ответ = OPI_Инструменты.Post(URL, Параметры, ДопЗаголовки);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Удалить модель
|
||||
// Удаляет существующую модель
|
||||
//
|
||||
|
@@ -2364,6 +2364,19 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Проверка_OllamaМодели(Знач Результат) Экспорт
|
||||
|
||||
ОжидаетЧто(Результат["models"]).ИмеетТип("Массив");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Проверка_OllamaИнформацияМодели(Знач Результат) Экспорт
|
||||
|
||||
ОжидаетЧто(Результат["parameters"]).Заполнено();
|
||||
ОжидаетЧто(Результат["model_info"]).Заполнено();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
@@ -2591,6 +2591,9 @@
|
||||
Ollama_ЗагрузитьМодельВПамять(ПараметрыТеста);
|
||||
Ollama_ВыгрузитьМодельИзПамяти(ПараметрыТеста);
|
||||
Ollama_СоздатьМодель(ПараметрыТеста);
|
||||
Ollama_ПолучитьИнформациюОМодели(ПараметрыТеста);
|
||||
Ollama_ПолучитьСписокМоделей(ПараметрыТеста);
|
||||
Ollama_КопироватьМодель(ПараметрыТеста);
|
||||
Ollama_УдалитьМодель(ПараметрыТеста);
|
||||
|
||||
КонецПроцедуры
|
||||
@@ -20746,6 +20749,64 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Ollama_ПолучитьСписокМоделей(ПараметрыФункции)
|
||||
|
||||
URL = ПараметрыФункции["Ollama_URL"];
|
||||
Токен = ПараметрыФункции["Ollama_Token"]; // Авторизация - не часть API Ollama
|
||||
|
||||
ДопЗаголовки = Новый Соответствие;
|
||||
ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
|
||||
|
||||
Результат = OPI_Ollama.ПолучитьСписокМоделей(URL, ДопЗаголовки);
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокМоделей", "Ollama");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_OllamaМодели(Результат);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Ollama_ПолучитьИнформациюОМодели(ПараметрыФункции)
|
||||
|
||||
URL = ПараметрыФункции["Ollama_URL"];
|
||||
Токен = ПараметрыФункции["Ollama_Token"]; // Авторизация - не часть API Ollama
|
||||
|
||||
Модель = "mario";
|
||||
|
||||
ДопЗаголовки = Новый Соответствие;
|
||||
ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
|
||||
|
||||
Результат = OPI_Ollama.ПолучитьИнформациюОМодели(URL, Модель, Ложь, ДопЗаголовки);
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьИнформациюОМодели", "Ollama");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_OllamaИнформацияМодели(Результат);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Ollama_КопироватьМодель(ПараметрыФункции)
|
||||
|
||||
URL = ПараметрыФункции["Ollama_URL"];
|
||||
Токен = ПараметрыФункции["Ollama_Token"]; // Авторизация - не часть API Ollama
|
||||
|
||||
Модель = "mario";
|
||||
Имя = "mario2";
|
||||
|
||||
ДопЗаголовки = Новый Соответствие;
|
||||
ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
|
||||
|
||||
Результат = OPI_Ollama.КопироватьМодель(URL, Модель, Имя, ДопЗаголовки);
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "КопироватьМодель", "Ollama");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_Пусто(Результат);
|
||||
|
||||
Результат = OPI_Ollama.УдалитьМодель(URL, Имя, ДопЗаголовки);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
Reference in New Issue
Block a user