Telegram Group Search
Вчера добавил в API api.rpa.icu новые мультимодальные модели эмбеддингов. Теперь сервис может принимать изображения в качестве входных данных, что открывает дополнительные возможности для работы с контентом.

Выбрал пару SotA-моделей:
- jinaai/jina-clip-v2 - Может извлекать эмбеддинги и из текста и из картинок
- laion/CLIP-ViT-bigG-14-laion2B-39B-b160k - может извлекать эмбеддинги только из картинок

Добавил на всякий случай их обе, так как ещё точно не знаю какая из них лучше подойдёт для одного моего проекта.

Пример простого POST‑запроса к эндпоинту:
# Берём картинку рандомного кода и конвертим в base64 строку
IMG_B64=$(curl -fsSL https://cataas.com/cat | base64 -w0)

# Создадим пейлод
printf '{
"model": "jinaai/jina-clip-v2",
"input": ["data:image/jpeg;base64,%s"]
}' "$IMG_B64" > payload.json

# Запрос на апишку
curl -s https://api.rpa.icu/embeddings \
-H "Authorization: Bearer https://www.group-telegram.com/evilfreelancer.com" \
-H "Content-Type: application/json" \
--data-binary @payload.json

В ответе в поле data будет векторное представление картинки.

Тоже самое, только на официальном openai клиенте на python:
import base64
import io
import requests
from openai import OpenAI
from PIL import Image

client = OpenAI(
api_key="https://www.group-telegram.com/evilfreelancer.com",
base_url="https://api.rpa.icu"
)

# Скачиваем кота
resp = requests.get("https://cataas.com/cat", timeout=30)
resp.raise_for_status()

# Читаем изображение
img = Image.open(io.BytesIO(resp.content)).convert("RGB")

# Конвертируем в base64
buf = io.BytesIO()
img.save(buf, format="JPEG")
b64_str = base64.b64encode(buf.getvalue()).decode("utf-8")
data_url = f"data:image/jpeg;base64,{b64_str}"

# Посылаем
resp_img = client.embeddings.create(
model="jina-clip-v2",
input=[data_url],
encoding_format="float",
)

# Вектор тут
vec = resp_img.data[0].embedding
print(vec)

Запустил обе модели через Infinity просто добавив дополнительные пару строк с --model-id.

Помимо них пробовал запустить ещё и ai-sage/Giga-Embeddings-instruct, но к сожалению бэкенд рестартится в момент запуска, так что тут ещё придётся повозиться.
1🔥8👍4
Прогулялся с семейством по палеонтологическому музею, очень понравилось, отличное приключение на выходных.
9👍16🔥10👏4🥰3
Пару часов назад пришло в личку такое вот сообщение, ну чтож, постараюсь изложить мои мысли.

Если кратко про основной вопрос, то прежде всего стоит уточнить, что есть ИИ-агент с моей точки зрения.

Частенько говоря об ИИ-агентах, возникает путаница, потому что разные люди вкладывают в этот термин разный смысл. В упрощённом виде ИИ-агент есть программа-помощник, которая умеет не только отвечать на вопросы, но и выполнять некие полезные действия.

Введение

Классический агент состоит из трёх частей:
- большая языковая модель (llm) — модель, которая принимает запросы пользователя и формулирует ответы.
- инструкция (prompt) — некий набор правил, которые задают агенту его поведение и роль.
- инструменты (tools) — внешние сервисы и функции, которыми агент может пользоваться и связываться с внешним миром, например искать информацию, делать расчёты, заказывать товары, писать код и так далее.

То есть, с моей скромной точки зрения, ИИ-агент — это не просто абстрактный чат-бот, а скорее связка: модель + инструкция + инструменты.

Классификация

Агенты можно условно разделить на две группы:

1. По количеству решаемых задач:
1.1. узкоспециализированные - делают что-то одно, но хорошо (например, агент для заполнения документов или поиска вакансий).
1.2. многофункциональные - способны решать разные задачи, пусть и не всегда хорошо, переключаясь между ролями (например, калькулятор + планировщик + переводчик).

2. По степени автономности:
2.1. ручные - выполняют запросы пошагово и только когда их просят.
2.2. автономные - это такие системы, которые могут сами планировать цепочку шагов и действовать без постоянного вмешательства человека (например, найти рынок для продукта, собрать данные и подготовить презентацию).

В принципе, сюда ещё можно добавить некоторые другие группы — навроде открытости языковых моделей, архитектуры реализации, способа взаимодействия с пользователем и так далее, но, полагаю, это слегка выходит за рамки.

Маркетплейc AI агентов

Но вернёмся к вопросу про создание маркетплейса ИИ-агентов в России. Итак, объяснив, что я имею в виду, когда говорю "ИИ-агент", попытаюсь ответить на поставленный вопрос. С моей точки зрения, в текущих реалиях появление подобного маркетплейса — вполне ожидаемое событие.

Но возникает ряд каверзных вопросов:
1. Какую проблему будет решать данный маркетплейс и как её решают пользователи сейчас без него?
2. Кто целевая аудитория маркетплейса? Физики или юрики?
3. Кто будет заниматься разработкой проекта подобного уровня?
4. Как масштабировать данный проект? Поставщики моделей? Поставщики инструментов?
и самое главное...
5. Как подобный проект будет зарабатывать? На подписках, решениях "под ключ" или как-то ещё?

Если порефлексировать и честно ответить на все перечисленные вопросы, то можно прийти к мысли о том, что:

Проект подобного масштаба в долгосрочной перспективе потянуть смогут лишь крупные поставщики нейросетевых решений, предоставляющие доступ к своим моделям через API. Но, как несложно догадаться, крупные отечественные игроки в основном ориентированы на собственные экосистемы и корпоративный сектор. Это значит, что маркетплейс в привычном для нас виде (а-ля витрина для всех) у них вряд ли окажется в приоритете.

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

Завершение

Поэтому идея маркетплейса ИИ-агентов в России кажется логичной и востребованной, но реализация, как мне кажется, будет зависеть не столько от технических возможностей (хорошие нейросети и продвинутые инструменты для агентов уже есть), сколько от организационной воли и готовности инвестировать в экосистему.
15🔥8💯1
Про function calling.

Вчера в нашем уютном чатике у меня произошел занятный спор на тему того, поддерживает ли GigaChat вызовы функций через API.

В официальной документации прямо написано, что да — функции поддерживаются и их следует передавать через параметры functions и function_call, однако, GigaChat API в чистом виде мягко говоря неудобен в интеграции и несовместим с openai-клиентами, поддерживать целый ворох исходников ради пары моделей удовольствие сомнительно, поэтому без адаптера-обёртки никуда, для этих целей я использую gigachat-adapter, а в нём поддержка function call отсутствует.

Поэтому у меня и сложилось ошибочное мнение о том, что поддержки в реальности нет. Даже если попробовать прокинуть функции напрямую через промт, GigaChat их не понимает и никак не вызывает.

В итоге я решил разобраться, почему столь полезная фича не реализована в адаптере, и как её можно добавить. По итогу сделал поддержку tools и tool_calling в openai-совместимом формате, написал конвертер запросов/ответов в нужный вид, добавил примеры для docker-compose и тесты.

Весь функционал оформил в виде PR.

Тем, кому интересно попробовать function calling прямо сейчас, нужно брать код из моего форка, из ветки function-call — там изменения уже доступны.
15🔥6👍5
Последние несколько дней вожусь с моим MCP сервером. Было желание добавить в него поиск по телеграм-каналам, который Валерий @neuraldeep реализовал в формате RAG с базой знаний и интеграцией через телеграм-бота.

В итоге у меня получилось сделать новый тул под названием search_telegram, попробовать его можно у меня на MCP сервере через MCP Inspector:
npx @modelcontextprotocol/inspector

Далее открываем ссылку на localhost с токеном в браузере, перед нами появится интерфейс.

Нужно указать адрес MCP сервера, токен авторизации и нажать Connect, вот креды:
Transport Type: Streamable HTTP
URL: https://mcp.rpa.icu/mcp/
Bearer Token: https://www.group-telegram.com/evilfreelancer.com


Ну и само собой добавил утилиту в мой ИИ-чат, так что можно прямо сейчас попробовать её в действии. Внизу под полем ввода есть селектор Инструменты, там выбираем search_telegram и просим модель искать информацию в Телеграм.
👍131
Прикупил себе новых видеокарт, на этот раз взял парочку RTX 5060 ti по 16гб каждая.

#server
🔥20👍5
Pavel Zloi
Прикупил себе новых видеокарт, на этот раз взял парочку RTX 5060 ti по 16гб каждая. #server
Media is too big
VIEW IN TELEGRAM
Занятный факт, 5060 ti почти на треть меньше a770 и имеет всего один порт подключения питания.

#server
🔥3
На двух картах qwen3:32b-q4_k_m запущенная через ollama 0.11.6 даёт плюс-минус 20 токенов в секунду.

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

Удивительно, но похоже видяшки недозагруженны, вероятно это связано с тем что я запускаю их через PCIe 3.0 x8 (на 4.0 какие-то ошибки, ещё не разобрался), а ещё видно что они в момент инференса кушают примерно 100 ватт.

В простое потребляет 18-20 ватт.

#server
2025/08/23 19:50:36
Back to Top
HTML Embed Code: