1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-08-24 19:49:22 +02:00

Доработки Ollama

This commit is contained in:
Anton Titovets
2025-04-12 22:52:09 +03:00
parent e3e179efce
commit 184bb2e3c5
7 changed files with 7531 additions and 7110 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -47,6 +47,27 @@
#Область ОбработкаЗапросов
// Получить версию
// Получает версию Ollama
//
// Примечание:
// Метод в документации API: [Version](@github.com/ollama/ollama/blob/main/docs/api.md#version)
//
// Параметры:
// URL - Строка - URL сервера Ollama - url
// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп заголовки запроса, если необходимо - headers
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - Результат обработки
Функция ПолучитьВерсию(Знач URL, Знач ДопЗаголовки = "") Экспорт
ДополнитьURL(URL, "api/version");
Ответ = OPI_Инструменты.Get(URL, , ДопЗаголовки);
Возврат Ответ;
КонецФункции
// Получить ответ
// Генерирует ответ по заданному текстовому запросу
//
@@ -116,6 +137,39 @@
КонецФункции
// Получить представления
// Получает представления (embeddings) для заданных вводных
//
// Примечание:
// Метод в документации API: [Generate Embeddings](@github.com/ollama/ollama/blob/main/docs/api.md#generate-embeddings)
//
// Параметры:
// URL - Строка - URL сервера Ollama - url
// Модель - Строка - Имя модели - model
// Вопрос - Массив Из Строка - Строка или массив строк запросов - input
// ДопПараметры - Структура Из КлючИЗначение - Доп. параметры. См. ПолучитьСтруктуруПараметровПредставлений - options
// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп заголовки запроса, если необходимо - headers
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - Результат обработки
Функция ПолучитьПредставления(Знач URL, Знач Модель, Знач Вопрос, Знач ДопПараметры = "", Знач ДопЗаголовки = "") Экспорт
ДополнитьURL(URL, "api/embed");
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("model", Модель, "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("input", Вопрос, "Строка", Параметры);
ОбработатьПараметры(Параметры, ДопПараметры);
ОбработатьЗаголовки(ДопЗаголовки);
Ответ = OPI_Инструменты.Post(URL, Параметры, ДопЗаголовки);
Возврат Ответ;
КонецФункции
// Получить структуру параметров запроса
// Получает структуру дополнительных параметров для обработки запроса
//
@@ -147,6 +201,32 @@
КонецФункции
// Получить структуру параметров представлений
// Получает структуру дополнительных параметров для обработки запросов получения представлений
//
// Параметры:
// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - Структура полей
Функция ПолучитьСтруктуруПараметровПредставлений(Знач Пустая = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
СтруктураПолей = Новый Структура;
СтруктураПолей.Вставить("options" , "<дополнительные параметры модели, перечисленные в документации к Modelfile>");
СтруктураПолей.Вставить("keep_alive", "<как долго модель будет оставаться загруженной в память после запроса>");
СтруктураПолей.Вставить("truncate" , "<обрезает конец каждого ответа, чтобы уложиться в длину контекста. Возвращает ошибку, если false и длина превышена>");
Если Пустая Тогда
СтруктураПолей = OPI_Инструменты.ОчиститьКоллекциюРекурсивно(СтруктураПолей);
КонецЕсли;
//@skip-check constructor-function-return-section
Возврат СтруктураПолей;
КонецФункции
// Получить структуру параметров в контексте
// Получает структуру дополнительных параметров для обработки запроса в контексте
//
@@ -176,27 +256,24 @@
// Получить структуру сообщения контекста
// Получает структуру сообщения для списка сообщений запроса в контексте
//
//
// Параметры:
// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
//
// Роль - Строка - Источник сообщения: system, user, assistant, tool - role
// Текст - Строка - Текст сообщения - text
// Картинки - Массив Из Строка - Список картинок в формате Base64 (для многомодальных моделей, вроде llava) - images
// Инструменты - Массив Из Строка - Список инструментов в формате JSON, которые модель должна использовать - tools
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - Структура полей
Функция ПолучитьСтруктуруСообщенияКонтекста(Знач Пустая = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
Функция ПолучитьСтруктуруСообщенияКонтекста(Знач Роль, Знач Текст, Знач Картинки = "", Знач Инструменты = "") Экспорт
СтруктураПолей = Новый Структура;
СтруктураПолей.Вставить("role" , "<источник сообщения: system, user, assistant, tool>");
СтруктураПолей.Вставить("content" , "<текст сообщения>");
СтруктураПолей.Вставить("images" , "<список картинок в формате Base64 (для многомодальных моделей, вроде llava)>");
СтруктураПолей.Вставить("tool_calls", "<список инструментов в формате JSON, которые модель должна использовать>");
OPI_Инструменты.ДобавитьПоле("role" , Роль , "Строка" , СтруктураПолей);
OPI_Инструменты.ДобавитьПоле("content" , Текст , "Строка" , СтруктураПолей);
OPI_Инструменты.ДобавитьПоле("images" , Картинки , "Коллекция", СтруктураПолей);
OPI_Инструменты.ДобавитьПоле("tool_calls", Инструменты, "Коллекция", СтруктураПолей);
Если Пустая Тогда
СтруктураПолей = OPI_Инструменты.ОчиститьКоллекциюРекурсивно(СтруктураПолей);
КонецЕсли;
//@skip-check constructor-function-return-section
Возврат СтруктураПолей;
КонецФункции
@@ -229,6 +306,30 @@
КонецФункции
// Получить список запущенных моделей
// Получает список запущенных моделей
//
// Примечание:
// Метод в документации API: [List Running Models](@github.com/ollama/ollama/blob/main/docs/api.md#list-running-models)
//
// Параметры:
// URL - Строка - URL сервера Ollama - url
// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп заголовки запроса, если необходимо - headers
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - Результат обработки
Функция ПолучитьСписокЗапущенныхМоделей(Знач URL, Знач ДопЗаголовки = "") Экспорт
ДополнитьURL(URL, "api/ps");
ОбработатьЗаголовки(ДопЗаголовки);
Ответ = OPI_Инструменты.Get(URL, , ДопЗаголовки);
Возврат Ответ;
КонецФункции
// Получить информацию о модели
// Получает информацию о выбранной модели
//
@@ -485,5 +586,4 @@
КонецПроцедуры
#КонецОбласти

View File

@@ -2574,11 +2574,14 @@
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Ollama_URL" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Ollama_Token", ПараметрыТеста);
Ollama_ПолучитьВерсию(ПараметрыТеста);
Ollama_ПолучитьОтвет(ПараметрыТеста);
Ollama_ПолучитьПредставления(ПараметрыТеста);
Ollama_ПолучитьОтветВКонтексте(ПараметрыТеста);
Ollama_ПолучитьСтруктуруПараметровЗапроса(ПараметрыТеста);
Ollama_ПолучитьСтруктуруПараметровВКонтексте(ПараметрыТеста);
Ollama_ПолучитьСтруктуруСообщенияКонтекста(ПараметрыТеста);
Ollama_ПолучитьСтруктуруПараметровПредставлений(ПараметрыТеста);
КонецПроцедуры
@@ -2593,8 +2596,10 @@
Ollama_СоздатьМодель(ПараметрыТеста);
Ollama_ПолучитьИнформациюОМодели(ПараметрыТеста);
Ollama_ПолучитьСписокМоделей(ПараметрыТеста);
Ollama_ПолучитьСписокЗапущенныхМоделей(ПараметрыТеста);
Ollama_КопироватьМодель(ПараметрыТеста);
Ollama_УдалитьМодель(ПараметрыТеста);
Ollama_ПолучитьСтруктуруНастроекМодели(ПараметрыТеста);
КонецПроцедуры
@@ -20542,8 +20547,8 @@
МассивСообщений = Новый Массив;
Вопрос1 = Новый Структура("role,content", "user", "What is 1C:Enterprise?");
Вопрос2 = Новый Структура("role,content", "user", "When the first version was released?"); // Вопрос без конкретики
Вопрос1 = OPI_Ollama.ПолучитьСтруктуруСообщенияКонтекста("user", "What is 1C:Enterprise?");
Вопрос2 = OPI_Ollama.ПолучитьСтруктуруСообщенияКонтекста("user", "When the first version was released?"); // Вопрос без конкретики
// Добавляем первый вопрос в контекст
МассивСообщений.Добавить(Вопрос1);
@@ -20686,22 +20691,33 @@
Процедура Ollama_ПолучитьСтруктуруСообщенияКонтекста(ПараметрыФункции)
Результат = OPI_Ollama.ПолучитьСтруктуруСообщенияКонтекста();
Результат = OPI_Ollama.ПолучитьСтруктуруСообщенияКонтекста("user", "Hello!");
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСтруктуруСообщенияКонтекста", "Ollama");
OPI_ПолучениеДанныхТестов.Проверка_Структура(Результат);
Результат = OPI_Ollama.ПолучитьСтруктуруСообщенияКонтекста(Истина);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСтруктуруСообщенияКонтекста (пустая)", "Ollama");
КонецПроцедуры
Процедура Ollama_ПолучитьСтруктуруНастроекМодели(ПараметрыФункции)
Результат = OPI_Ollama.ПолучитьСтруктуруНастроекМодели();
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСтруктуруНастроекМодели", "Ollama");
OPI_ПолучениеДанныхТестов.Проверка_Структура(Результат);
Результат = OPI_Ollama.ПолучитьСтруктуруНастроекМодели(Истина);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСтруктуруНастроекМодели (пустая)", "Ollama");
Для Каждого Элемент Из Результат Цикл
OPI_ПолучениеДанныхТестов.Проверка_Пусто(Элемент.Значение);
КонецЦикла;
КонецПроцедуры
Процедура Ollama_СоздатьМодель(ПараметрыФункции)
@@ -20766,6 +20782,23 @@
КонецПроцедуры
Процедура Ollama_ПолучитьСписокЗапущенныхМоделей(ПараметрыФункции)
URL = ПараметрыФункции["Ollama_URL"];
Токен = ПараметрыФункции["Ollama_Token"]; // Авторизация - не часть API Ollama
ДопЗаголовки = Новый Соответствие;
ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
Результат = OPI_Ollama.ПолучитьСписокЗапущенныхМоделей(URL, ДопЗаголовки);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокЗапущенныхМоделей", "Ollama");
OPI_ПолучениеДанныхТестов.Проверка_OllamaМодели(Результат);
КонецПроцедуры
Процедура Ollama_ПолучитьИнформациюОМодели(ПараметрыФункции)
URL = ПараметрыФункции["Ollama_URL"];
@@ -20807,6 +20840,66 @@
КонецПроцедуры
Процедура 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
МассивСтрок = Новый Массив;
МассивСтрок.Добавить("Why is the sky blue?");
МассивСтрок.Добавить("Why is the grass green?");
Модель = "tinyllama";
ДопЗаголовки = Новый Соответствие;
ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
Результат = OPI_Ollama.ПолучитьПредставления(URL, Модель, МассивСтрок, , ДопЗаголовки);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьПредставления", "Ollama");
OPI_ПолучениеДанныхТестов.Проверка_OllamaОтвет(Результат);
КонецПроцедуры
Процедура Ollama_ПолучитьСтруктуруПараметровПредставлений(ПараметрыФункции)
Результат = OPI_Ollama.ПолучитьСтруктуруПараметровПредставлений();
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСтруктуруПараметровПредставлений", "Ollama");
OPI_ПолучениеДанныхТестов.Проверка_Структура(Результат);
Результат = OPI_Ollama.ПолучитьСтруктуруПараметровПредставлений(Истина);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСтруктуруПараметровПредставлений (пустая)", "Ollama");
Для Каждого Элемент Из Результат Цикл
OPI_ПолучениеДанныхТестов.Проверка_Пусто(Элемент.Значение);
КонецЦикла;
КонецПроцедуры
#КонецОбласти
#КонецОбласти

View File

@@ -2377,6 +2377,12 @@
КонецПроцедуры
Процедура Проверка_OllamaВерсия(Знач Результат) Экспорт
ОжидаетЧто(Результат["version"]).Заполнено();
КонецПроцедуры
#КонецОбласти
#КонецОбласти
@@ -2413,9 +2419,9 @@
КонецФункции
Функция ПолучитьОбщийМодуль(Знач Имя)
Модуль = Вычислить(Имя);
Возврат Модуль;
КонецФункции

View File

@@ -47,6 +47,27 @@
#Область ОбработкаЗапросов
// Получить версию
// Получает версию Ollama
//
// Примечание:
// Метод в документации API: [Version](@github.com/ollama/ollama/blob/main/docs/api.md#version)
//
// Параметры:
// URL - Строка - URL сервера Ollama - url
// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп заголовки запроса, если необходимо - headers
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - Результат обработки
Функция ПолучитьВерсию(Знач URL, Знач ДопЗаголовки = "") Экспорт
ДополнитьURL(URL, "api/version");
Ответ = OPI_Инструменты.Get(URL, , ДопЗаголовки);
Возврат Ответ;
КонецФункции
// Получить ответ
// Генерирует ответ по заданному текстовому запросу
//
@@ -116,6 +137,39 @@
КонецФункции
// Получить представления
// Получает представления (embeddings) для заданных вводных
//
// Примечание:
// Метод в документации API: [Generate Embeddings](@github.com/ollama/ollama/blob/main/docs/api.md#generate-embeddings)
//
// Параметры:
// URL - Строка - URL сервера Ollama - url
// Модель - Строка - Имя модели - model
// Вопрос - Массив Из Строка - Строка или массив строк запросов - input
// ДопПараметры - Структура Из КлючИЗначение - Доп. параметры. См. ПолучитьСтруктуруПараметровПредставлений - options
// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп заголовки запроса, если необходимо - headers
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - Результат обработки
Функция ПолучитьПредставления(Знач URL, Знач Модель, Знач Вопрос, Знач ДопПараметры = "", Знач ДопЗаголовки = "") Экспорт
ДополнитьURL(URL, "api/embed");
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("model", Модель, "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("input", Вопрос, "Строка", Параметры);
ОбработатьПараметры(Параметры, ДопПараметры);
ОбработатьЗаголовки(ДопЗаголовки);
Ответ = OPI_Инструменты.Post(URL, Параметры, ДопЗаголовки);
Возврат Ответ;
КонецФункции
// Получить структуру параметров запроса
// Получает структуру дополнительных параметров для обработки запроса
//
@@ -147,6 +201,32 @@
КонецФункции
// Получить структуру параметров представлений
// Получает структуру дополнительных параметров для обработки запросов получения представлений
//
// Параметры:
// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - Структура полей
Функция ПолучитьСтруктуруПараметровПредставлений(Знач Пустая = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
СтруктураПолей = Новый Структура;
СтруктураПолей.Вставить("options" , "<дополнительные параметры модели, перечисленные в документации к Modelfile>");
СтруктураПолей.Вставить("keep_alive", "<как долго модель будет оставаться загруженной в память после запроса>");
СтруктураПолей.Вставить("truncate" , "<обрезает конец каждого ответа, чтобы уложиться в длину контекста. Возвращает ошибку, если false и длина превышена>");
Если Пустая Тогда
СтруктураПолей = OPI_Инструменты.ОчиститьКоллекциюРекурсивно(СтруктураПолей);
КонецЕсли;
//@skip-check constructor-function-return-section
Возврат СтруктураПолей;
КонецФункции
// Получить структуру параметров в контексте
// Получает структуру дополнительных параметров для обработки запроса в контексте
//
@@ -176,27 +256,24 @@
// Получить структуру сообщения контекста
// Получает структуру сообщения для списка сообщений запроса в контексте
//
//
// Параметры:
// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
//
// Роль - Строка - Источник сообщения: system, user, assistant, tool - role
// Текст - Строка - Текст сообщения - text
// Картинки - Массив Из Строка - Список картинок в формате Base64 (для многомодальных моделей, вроде llava) - images
// Инструменты - Массив Из Строка - Список инструментов в формате JSON, которые модель должна использовать - tools
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - Структура полей
Функция ПолучитьСтруктуруСообщенияКонтекста(Знач Пустая = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
Функция ПолучитьСтруктуруСообщенияКонтекста(Знач Роль, Знач Текст, Знач Картинки = "", Знач Инструменты = "") Экспорт
СтруктураПолей = Новый Структура;
СтруктураПолей.Вставить("role" , "<источник сообщения: system, user, assistant, tool>");
СтруктураПолей.Вставить("content" , "<текст сообщения>");
СтруктураПолей.Вставить("images" , "<список картинок в формате Base64 (для многомодальных моделей, вроде llava)>");
СтруктураПолей.Вставить("tool_calls", "<список инструментов в формате JSON, которые модель должна использовать>");
OPI_Инструменты.ДобавитьПоле("role" , Роль , "Строка" , СтруктураПолей);
OPI_Инструменты.ДобавитьПоле("content" , Текст , "Строка" , СтруктураПолей);
OPI_Инструменты.ДобавитьПоле("images" , Картинки , "Коллекция", СтруктураПолей);
OPI_Инструменты.ДобавитьПоле("tool_calls", Инструменты, "Коллекция", СтруктураПолей);
Если Пустая Тогда
СтруктураПолей = OPI_Инструменты.ОчиститьКоллекциюРекурсивно(СтруктураПолей);
КонецЕсли;
//@skip-check constructor-function-return-section
Возврат СтруктураПолей;
КонецФункции
@@ -229,6 +306,30 @@
КонецФункции
// Получить список запущенных моделей
// Получает список запущенных моделей
//
// Примечание:
// Метод в документации API: [List Running Models](@github.com/ollama/ollama/blob/main/docs/api.md#list-running-models)
//
// Параметры:
// URL - Строка - URL сервера Ollama - url
// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп заголовки запроса, если необходимо - headers
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - Результат обработки
Функция ПолучитьСписокЗапущенныхМоделей(Знач URL, Знач ДопЗаголовки = "") Экспорт
ДополнитьURL(URL, "api/ps");
ОбработатьЗаголовки(ДопЗаголовки);
Ответ = OPI_Инструменты.Get(URL, , ДопЗаголовки);
Возврат Ответ;
КонецФункции
// Получить информацию о модели
// Получает информацию о выбранной модели
//
@@ -485,5 +586,4 @@
КонецПроцедуры
#КонецОбласти

View File

@@ -2377,6 +2377,12 @@
КонецПроцедуры
Процедура Проверка_OllamaВерсия(Знач Результат) Экспорт
ОжидаетЧто(Результат["version"]).Заполнено();
КонецПроцедуры
#КонецОбласти
#КонецОбласти

View File

@@ -2574,11 +2574,14 @@
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Ollama_URL" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Ollama_Token", ПараметрыТеста);
Ollama_ПолучитьВерсию(ПараметрыТеста);
Ollama_ПолучитьОтвет(ПараметрыТеста);
Ollama_ПолучитьПредставления(ПараметрыТеста);
Ollama_ПолучитьОтветВКонтексте(ПараметрыТеста);
Ollama_ПолучитьСтруктуруПараметровЗапроса(ПараметрыТеста);
Ollama_ПолучитьСтруктуруПараметровВКонтексте(ПараметрыТеста);
Ollama_ПолучитьСтруктуруСообщенияКонтекста(ПараметрыТеста);
Ollama_ПолучитьСтруктуруПараметровПредставлений(ПараметрыТеста);
КонецПроцедуры
@@ -2593,8 +2596,10 @@
Ollama_СоздатьМодель(ПараметрыТеста);
Ollama_ПолучитьИнформациюОМодели(ПараметрыТеста);
Ollama_ПолучитьСписокМоделей(ПараметрыТеста);
Ollama_ПолучитьСписокЗапущенныхМоделей(ПараметрыТеста);
Ollama_КопироватьМодель(ПараметрыТеста);
Ollama_УдалитьМодель(ПараметрыТеста);
Ollama_ПолучитьСтруктуруНастроекМодели(ПараметрыТеста);
КонецПроцедуры
@@ -20542,8 +20547,8 @@
МассивСообщений = Новый Массив;
Вопрос1 = Новый Структура("role,content", "user", "What is 1C:Enterprise?");
Вопрос2 = Новый Структура("role,content", "user", "When the first version was released?"); // Вопрос без конкретики
Вопрос1 = OPI_Ollama.ПолучитьСтруктуруСообщенияКонтекста("user", "What is 1C:Enterprise?");
Вопрос2 = OPI_Ollama.ПолучитьСтруктуруСообщенияКонтекста("user", "When the first version was released?"); // Вопрос без конкретики
// Добавляем первый вопрос в контекст
МассивСообщений.Добавить(Вопрос1);
@@ -20686,22 +20691,33 @@
Процедура Ollama_ПолучитьСтруктуруСообщенияКонтекста(ПараметрыФункции)
Результат = OPI_Ollama.ПолучитьСтруктуруСообщенияКонтекста();
Результат = OPI_Ollama.ПолучитьСтруктуруСообщенияКонтекста("user", "Hello!");
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСтруктуруСообщенияКонтекста", "Ollama");
OPI_ПолучениеДанныхТестов.Проверка_Структура(Результат);
Результат = OPI_Ollama.ПолучитьСтруктуруСообщенияКонтекста(Истина);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСтруктуруСообщенияКонтекста (пустая)", "Ollama");
КонецПроцедуры
Процедура Ollama_ПолучитьСтруктуруНастроекМодели(ПараметрыФункции)
Результат = OPI_Ollama.ПолучитьСтруктуруНастроекМодели();
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСтруктуруНастроекМодели", "Ollama");
OPI_ПолучениеДанныхТестов.Проверка_Структура(Результат);
Результат = OPI_Ollama.ПолучитьСтруктуруНастроекМодели(Истина);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСтруктуруНастроекМодели (пустая)", "Ollama");
Для Каждого Элемент Из Результат Цикл
OPI_ПолучениеДанныхТестов.Проверка_Пусто(Элемент.Значение);
КонецЦикла;
КонецПроцедуры
Процедура Ollama_СоздатьМодель(ПараметрыФункции)
@@ -20766,6 +20782,23 @@
КонецПроцедуры
Процедура Ollama_ПолучитьСписокЗапущенныхМоделей(ПараметрыФункции)
URL = ПараметрыФункции["Ollama_URL"];
Токен = ПараметрыФункции["Ollama_Token"]; // Авторизация - не часть API Ollama
ДопЗаголовки = Новый Соответствие;
ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
Результат = OPI_Ollama.ПолучитьСписокЗапущенныхМоделей(URL, ДопЗаголовки);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокЗапущенныхМоделей", "Ollama");
OPI_ПолучениеДанныхТестов.Проверка_OllamaМодели(Результат);
КонецПроцедуры
Процедура Ollama_ПолучитьИнформациюОМодели(ПараметрыФункции)
URL = ПараметрыФункции["Ollama_URL"];
@@ -20807,6 +20840,66 @@
КонецПроцедуры
Процедура 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
МассивСтрок = Новый Массив;
МассивСтрок.Добавить("Why is the sky blue?");
МассивСтрок.Добавить("Why is the grass green?");
Модель = "tinyllama";
ДопЗаголовки = Новый Соответствие;
ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
Результат = OPI_Ollama.ПолучитьПредставления(URL, Модель, МассивСтрок, , ДопЗаголовки);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьПредставления", "Ollama");
OPI_ПолучениеДанныхТестов.Проверка_OllamaОтвет(Результат);
КонецПроцедуры
Процедура Ollama_ПолучитьСтруктуруПараметровПредставлений(ПараметрыФункции)
Результат = OPI_Ollama.ПолучитьСтруктуруПараметровПредставлений();
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСтруктуруПараметровПредставлений", "Ollama");
OPI_ПолучениеДанныхТестов.Проверка_Структура(Результат);
Результат = OPI_Ollama.ПолучитьСтруктуруПараметровПредставлений(Истина);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСтруктуруПараметровПредставлений (пустая)", "Ollama");
Для Каждого Элемент Из Результат Цикл
OPI_ПолучениеДанныхТестов.Проверка_Пусто(Элемент.Значение);
КонецЦикла;
КонецПроцедуры
#КонецОбласти
#КонецОбласти