Библиотека для работы с Ollama (open-source)

09.06.25

Интеграция - WEB-интеграция

Библиотека работы с AI моделями через Ollama API для 1С:Предприятие и OneScript. Бесплатно, с открытым исходным кодом и документацией!

Если вы не слышали ранее об Открытом Пакете Интеграций (что вполне вероятно), то небольшая вводная часть ниже, под катом. Тем, кто уже знаком с ОПИ, данный раздел можно пропустить.

 
 Что такое Открытый Пакет Интеграций

 

Открытый Пакет Интеграций (ОПИ) - это open-source набор методов для простой и быстрой интеграции с различными популярными API. Он состоит из аналогичных по функционалу 1С-расширения (CFE), OS-пакета и программы для Windows и Linux, которые предоставляют готовые функции для работы с целым набором различных онлайн-сервисов.


  • ОПИ бесплатен и имеет открытый исходный код на GitHub. Вы всегда можете получить последнюю версию библиотеки на странице репозитория, а подписавшись - узнавать о выходе обновлений. Все релизы сопровождаются статьями на Инфостарт и разделами единой документации. На Инфостарт вы можете подписаться уже хоть сейчас, а про документацию я расскажу далее.

 

 

 

  • Удобная единая документация. Она расположена на сайте openintegrations.dev и содержит в себе всю информацию, необходимую для работы: инструкции по предварительным действиям для начала интеграции, описания всех методов с параметрами и возвращаемыми значениями, примеры кода и т.д. Каждый API имеет там свой раздел.

 

 

 

 

  • Простая установка. ОПИ распространяется во множестве вариантах: как XML файлы расширения, как EDT проект расширения, как файл расширения формата .cfe (версия 1С 8.3.9), как файл пакета для OneScript и еще в целом наборе пакетов и файлов для Windows и Linux. Из этого набора вы всегда сможете выбрать тот способ установки, который лучше подойдет для вашей конкретной задачи

 

На момент последнего обновления данной статьи, доступны следующие API:

Наиболее актуальную информацию можно посмотреть в репозитории или на вводной странице документации.

 

Ollama — это инструмент и платформа с открытым исходным кодом, которая позволяет легко запускать и использовать большие языковые модели (LLM) локально на вашей машине.

 

 

Ollama один из важнейших инструментов, если мы говорим про использования ИИ: она предоставляет простой способ взаимодействия с различными моделями, такими как Llama, Mistral, Phi, и другими, без необходимости подключения к интернету или использованию облачных сервисов.

 

Тема ИИ популярна сейчас как в 1С, так и в остальных стеках, поэтому в ОПИ я тоже не захотел смог обойти ее стороной. Для работы с Ollama API в пакете теперь доступны следующие методы:

  • Методы обработки запросов
    • Получение версии Ollama
    • Получение ответа по промпту
    • Получение ответа с историей сообщений (в контексте)
    • Получение представлений (embeddings)
  • Методы управления моделями
    • Получение списка доступных моделей
    • Получение списка запущенных моделей
    • Получение информации о модели по имени
    • Создание модели
    • Копирование модели
    • Удаление модели
    • Загрузка модели в ОЗУ
    • Выгрузка модели из ОЗУ
    • Отправка модели в библиотеку
    • Скачивание модели из библиотеки
  • Работа с BLOB
    • Отправка BLOB на сервер
    • Проверка существования BLOB

 

Примеры кода:
 

 
 Получение ответа
 
 Получение ответа в контексте
 
 Создание модели

 

Эти функции покрывают практически весь доступны API Ollama: их должно быть достаточно для простого создания чат-бота или автоматизации управления моделями из 1С и OneScript. Больше информации о перечисленных выше методах, как и всегда, можно найти в онлайн документации


 

Переработка функционала HTTP

Помимо нового API и исправления некоторых багов, к этому обновлению также был серьезно переработан внутренний инструментарий для работы с HTTP, на основе которого большинство библиотек ОПИ и работают. Его основа была создана в самом начале проекта, еще до первой библиотеки пакета, поэтому не удивительно, что там были как изначальные недочеты проектирования, вскрывшиеся позднее, так и ворох костылей, собранных уже в процессе развития

 

У старого модуля не было особых проблем в надежности, но зато были большие проблемы в плане гибкости, прозрачности и унификации, что и привело наконец к этой переработке, которая очень долго откладывалась

 

Рассказываю же я это для того, чтобы подвести в итоге к двум вещам:

 

  • Все методы всех библиотек покрыты Unit-тестами, которые были успешно пройдены к текущему моменту, когда переработка функций для работы с HTTP уже завершена. Также к ним добавились тесты уже на сам модуль HTTP, чего не было ранее. Тем не менее, если вы уже используете ОПИ и планируете обновлять его до новой версии, желательно соблюдать осторожность и понаблюдать за его работой некоторое время. В случае возникновения проблем, просьба написать о них в Issues (лучше) или комментариях к данной статье (хуже)
     
  • Мне нравится, как выглядит и работает новый модуль HTTP, поэтому в следующем обновлении, вероятно, он появится как отдельная библиотека. По задумке, это должно с одной стороны увеличить количество информации о его работе (не только внутри других библиотек, но и напрямую), а с другой - устранить этот странный пробел отсутствия HTTP-клиента в проекте с интеграциями, большая часть которых на HTTP и работает

 

Ну а пока все! Напомню лишь, что ОПИ - это не только Ollama и не только 1С, но еще более 20-ти API и технологий, интеграция с которыми доступна также в виде пакета для OneScript и консольного приложения для Windows и Linux. Все интересные ссылки находятся ниже

 

Спасибо за внимание!

 

 Если вам нравится ОПИ, то не забывайте поддерживать его на GitHub и Инфостарт!

 

 

Репозиторий ОПИ: github.com/Bayselonarrend/OpenIntegrations

Последний релиз: github.com/Bayselonarrend/OpenIntegrations/releases/latest

 
 Куда жать и где скачать?

 

Другие статьи про Открытый пакет интеграций на Инфостарт:

 

 

 Мой GitHub:    https://gitub.com/Bayselonarrend 
 OpenYellow:    https://openyellow.org
 Лицензия MIT:  https://mit-license.org

Вступайте в нашу телеграмм-группу Инфостарт

ollama ai api web http ml искусственный интеллект чатботы

См. также

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь 1С v8.3 1C:Бухгалтерия 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM / LOGICSTARS. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM / LOGICSTAR разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    21762    31    24    

24

SALE! 15%

WEB-интеграция Программист Бизнес-аналитик 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Оптовая торговля, дистрибуция, логистика ИТ-компания Платные (руб)

Модуль "Экспортер" — это расширение для 1С, предназначенное для автоматизации процессов выгрузки данных. Оно позволяет эффективно извлекать, преобразовывать и передавать данные из систем 1С в интеграционную платформу Spot2D. Подсистема упрощает настройку, снижает количество ручных операций и обеспечивает удобный контроль данных.

17280 14688 руб.

20.12.2024    3992    20    2    

21

WEB-интеграция Программист Руководитель проекта 1С v8.3 1C:Бухгалтерия 1С:Франчайзи, автоматизация бизнеса Платные (руб)

Расширение значительно упрощает написание API на 1С. Веб программисты получают простой и понятный доступ к 1С. Описание API создаётся автоматически и представляется в виде удобном как для человека, так и для программной обработки. Основные преимущества: 1. Документация API создаётся автоматически. Удобна для программной обработки. 2. Изменить API столь же просто как настроить отчёт. Можно опубликовать существующий вариант отчёта. 3. Отчёты в API поддерживают параметры (Период, ДатаНачала и др.) 4. При создании простых методов не требуется изменять конфигурацию. 5. Поддерживается работа с планами обмена.<br/> 6. Возможно настроить отправку из 1С данных корреспондирующей системе, для случаев когда 1С сама "знает" какие данные нужно отправить. 7. После записи в 1С Ле Мурр может возвращать соответствие полученных идентификаторов созданным в 1С объектам данных.

36000 руб.

27.09.2024    8643    7    5    

9

Оптовая торговля WEB-интеграция Бюджетный учет Обмен с ГосИС Бухгалтер Пользователь 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Государственные, бюджетные структуры Россия Бухгалтерский учет Управленческий учет Платные (руб)

Обмен данными с "Порталом поставщиков" zakupki.mos.ru Москвы и Московской области с целью создания оферт для закупок государственными учреждениями. Модуль устраняет рутину, минимизирует ошибки и помогает выигрывать больше закупок. Работает строго по требованиям 44-ФЗ.

14400 руб.

13.12.2016    41286    54    39    

37

Обмен с ГосИС WEB-интеграция Бухгалтер Пользователь 1С v8.3 Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:Документооборот 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Обработка является альтернативой механизму, разработанному фирмой 1С и заполняющему реквизиты контрагента по ИНН или наименованию. Не требуется действующей подписки ИТС. Вызывается как внешняя дополнительная обработка, т.е. используется, непосредственно, из карточки контрагента. Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС (egrul.nalog.ru) для БП 2.0, БП 3.0, БГУ 1.0, БГУ 2.0, УТ 10.3, УТ 11.x, КА 1.1, КА 2.x, УПП 1.x, ERP 2.x, УНФ 1.5, УНФ 1.6, УНФ 3.0, ДО 2.1

5196 руб.

28.04.2016    98207    111    218    

359
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. kihid 05.05.25 10:18 Сейчас в теме
А стрминг работает? Когда сами пробовали подключаться к Ollama что-то не получилось
2. bayselonarrend 2938 05.05.25 10:24 Сейчас в теме
(1)
А стрминг работает?


Нет. Это какой-то момент 1Сного HTTPСоединения: оно не умеет получать ответ частями (persistent connection это вроде называется), а просто ждет, когда все части догрузятся. Пэтому по умолчанию во всех функциях либы прописан stream=false
9. kihid 05.05.25 13:09 Сейчас в теме
(2) Жаль, получать частяии оно конечно интерактивнее
11. bayselonarrend 2938 05.05.25 13:19 Сейчас в теме
(9) Ну, это наврное было бы проблематично без асинхронности
12. bayselonarrend 2938 05.05.25 13:19 Сейчас в теме
(9) Может что-нибудь придумаю потом в рамках развития HTTP-клиента
18. trim89 126 06.05.25 10:46 Сейчас в теме
(2) Нууу, с дипсиком баловался. Там нужна реализация SSE соединения. Я такой на node js писал, на iisnode запустил.

Мини api которое получает с 1с запрос, пересылает в ИИ, получает потоком данные. Режет на части и пихает в отдельную БД, при этом ответом отсылает в 1с некий ид, по которому искать эти данные. Потом 1с в цикле шлет другие запросы, которые уже из БД получают порционно ответ от ИИ, пока не будет получена последняя порция ответа.

В общем, вопрос решаемый, но с бубном.
3. Anqben 05.05.25 10:32 Сейчас в теме
А можешь подкинуть оригинальные доки олламиы пж?
4. bayselonarrend 2938 05.05.25 10:39 Сейчас в теме
(3) https://github.com/ollama/ollama/blob/main/docs/api.md
Но вообще в доках ОПИ под каждой функцией есть
Прикрепленные файлы:
5. Miroshh 3 05.05.25 10:54 Сейчас в теме
Интересно, что по авторизации? Методы "универсальные" вроде, а auth у всех разный, в ollama своего нету :/
bayselonarrend; +1 Ответить
6. bayselonarrend 2938 05.05.25 10:57 Сейчас в теме
(5) В каждой функции есть параметр "Заголовки", куда можно передать свои хеддеры, в том числе и какой-нибудь Authorization: Bearer
7. bayselonarrend 2938 05.05.25 11:00 Сейчас в теме
(5) В примерах кода, кста, есть об этом
8. SerVer1C 992 05.05.25 11:59 Сейчас в теме
Опередили ) Не хватило свободного времени доделать свою версию )
bayselonarrend; +1 Ответить
13. koropo 2 05.05.25 22:27 Сейчас в теме
Методы одинаковы для любых моделей?
14. bayselonarrend 2938 05.05.25 22:45 Сейчас в теме
15. bayselonarrend 2938 05.05.25 22:47 Сейчас в теме
(13) А, ну разве что некторые (обычно небольшие) модели могут не поддерживать все параметры, вроде промптов с картинками и тонкие настройки
16. Pavel_Vladivostok 58 06.05.25 07:21 Сейчас в теме
А в чем смысл этой интеграции, чтобы из 1С обращаться к моделям которые крутятся на ламе? Есть опенсорсный менеджер моделей open-webui, который предоставляет веб-морду для общения с локальными моделями эту веб-морду можно и на форму в 1с вывести, но какой в этом смсысл, не совсем понимаю.
17. bayselonarrend 2938 06.05.25 07:26 Сейчас в теме
(16) Ну, выводить ui в 1С действительно смысла особого нет. Но местных решений, где на какой-нибудь форме, типовой или не типовой, по кнопке модель что нибудь заполняет автоматически, уже и сейчас довольно много

У меня же не gui, а просто методы, которые можно в нужное место в своем коде подставить
A_Max; EvilMilko; +2 Ответить
19. seperblunt 24 06.05.25 23:31 Сейчас в теме
а можно локальной модели скормить конфигурацию, чтобы она ее запомнила и далее уже задавать по конфе вопросы не передавая больших контекстов?
20. bayselonarrend 2938 07.05.25 08:41 Сейчас в теме
(19) Через ollama вроде нет, но можно другими инструментами дообучить модель, выгрузить в GGUF, и загрузить потом в ollama.
Для отправки сообщения требуется регистрация/авторизация