
☀️ Релиз: AiFlow v0.1.0 — Общение без трудностей с Ollama
После многих лет использования чужих библиотек и фреймворков — я наконец выпустил свою первую open-source библиотеку на Elixir. Она называется AiFlow, разработана для удобной интеграции нейросетей и работы с ними в собственных проектах (пока поддерживает только Ollama, но вскоре появятся новые возможности)
🤔 Зачем я это сделал?
Если кратко, то я просто хотел удобно работать с ИИ в своих проектах — без лишних телодвижений 💼
Модель должна отвечать на запросы пользователей без лишних сложностей: вызываешь нужную функцию и мгновенно получаешь результат, обходясь без мучений с настройкой HTTP-запросов, разбором JSON-ответов и многократной повторной реализацией типовых обработчиков. Для удобства работы с Ollama сделал взаимодействие простым и понятным, избавившись от излишних промежуточных слоев абстракций. Пока реализован интерфейс исключительно для Ollama, однако вскоре собираюсь расширить поддержку до Bumblebee, разработать дополнительные элементы интерфейса на основе LiveView для проектов на Phoenix, чтобы пользователи могли быстро внедрять технологии искусственного интеллекта в свои приложения и сервисы 🐸
🕵️♂️ Что сейчас умеет AiFlow (Модуль Ollama)?
- Управление моделями. Просмотр списка моделей, создание, копирование, удаление, загрузка и выгрузка моделей
- Умные сеансы чата. Постоянное хранение истории сообщений с автоматическим управлением контекстом
- Генерация ответов. Возможность задать ответ без контекста модели
- Embeddings. Генерация векторных вложений для семантического поиска и задач машинного обучения
- Операции с BLOB-объектами. эффективное управление файлами моделей
- Надежная обработка ошибок. комплексный механизм обработки ошибок с ! версиями функций
- Расширенная отладка. Встроенные инструменты для устранения неполадок и разработки
😨 Пример: задай вопрос — получи ответ
# Запускаем процесс
AiFlow.Ollama.start_link()
# Спрашиваем у модели
AiFlow.Ollama.query("Почему небо голубое?")```
Результат:
{:ok,
[
"Большинство людей считает, что небо голубое из-за того, что оно отражает солнечный свет...",
"Кроме этого существует другая версия: некоторые учёные считают, что небо голубого цвета..."
]}
Вам не нужно было отдельно формировать запросы, парсить JSON и возвращать результат вручную — полный ответ вы уже получили мгновенно! Дополнительно я добавил опции для более удобной и прозрачной интеграции с Ollama:
- debug: true — эта настройка позволяет увидеть отправляемые на сервер запросы вместе с телами сообщений, заголовками и прочей служебной информацией
- short: false — вместо обычного короткого ответа вы получите расширенный ответ, включающий дополнительные поля вроде заголовков, тела и других полей
- field: :headers | field: {:body, “response”} — если вам нужен доступ к какому-то конкретному полю в ответе (например, заголовки), укажите параметр field с названием нужного ключа
:headers, чтобы получить именно эту часть ответа
⚰️ В заключение
Библиотека не претендует на оригинальность — подобные инструменты уже существуют (например, Ollama). Это мой первый проект такого рода, созданный для упрощённого взаимодействия с платформой Ollama, освобождая вас от рутинной работы с HTTP-запросами и предлагая удобные, компактные методы. Если заметите какие-либо проблемы или пожелания относительно документаций — пишите под постом в комментариях либо отправляйте сообщение в канал. Хотите поучаствовать в улучшении библиотеки? Присылайте pull-request’ы с вашими предложениями и изменениями. Всё остальное подробно расписано в официальной документации ⌚️