All streams
Search
Write a publication
Pull to refresh
1
0
Send message

Часто помогает дать кастомные инструкции в настройках глобально. Если замечаешь что он фиксит путем добавления хаков, диким жонглированием преобразований типов в и жестких анипаттернов - прописываешь не делать это так а делать мол так и так. Кроме того помогает давать ему в контекст документацию проэкта очень краткую с иерархией файлов и кратким описанием что куда и зачем дергает + критичные неочевидные моменты в логике если присутствуют - тогда он более осознанно действует в агентном режиме. Ну и в контексте перед сложным действием просить его эту документацию прочитать. А документацию эту попросить отдельно сгенерировать уже в приложении Соннета - он более качественно там это все опишет в артефактах (вообще чисто по ощущениям соннет в чате в приложении чутка умнее соннета в курсоре, есть впечатление что для курсора его совсем чуть чуть урезают в глубине размышлений что ли)

import { GoogleGenAI, Modality } from '@google/genai';

const contents = [
  { text: prompt },
  {
	inlineData: {
	  mimeType: 'image/jpeg',
	  data: imageBase64,
	},
  },
];


response = await ai.models.generateContent({
	model: 'gemini-2.0-flash-exp',
	contents,
	config: {
	  responseModalities: [Modality.IMAGE, Modality.TEXT],
	},
});

На прошлой неделе с этим же столкнулся, потыкался немного, плюнул, перешел на gemini-api от гугла и заработало.

Ну да, в кровавом энтерпрайзе подобное решение типа "а давайте отправим структуру нашего кода в облака заклятым друзьям", пожалуй загнется ещё на уровне согласования с СБ. :) Да и в целом ограничения по контекстному окну начнут играть большую роль. Но учитывая скорость с которой опен-сорс ллм догоняет китов, в очень ближайшем будущем подобная авто-документация должна стать стандартом. Ну и конечно всякие банки, мобильные операторы и яндексы здесь будут первыми.

Конкретно это решение - достаточно крупный монолит, так что одной общей документации хватает. Достаточно путанный монолит с сильным коуплингом, но с хорошим следованием нейминг-конвенциям, а это для ЛЛМ пожалуй самое важное.

В bpmn-нотацию УЖЕ может но ПОКА ЧТО так себе, тут придется в режиме дискуссии уже с ллмкой работать. Т.е. xml для импорта в какой-нибудь draw.io он создаст, дорожки, действий и шлюзы понатыкает, но пока что это всё достаточно криво и доделывать придется. Ну в моем случае это было и не надо, это я уже так для интереса посмотрел сейчас.

В моем случае я просто попросил Клода написать мне батник который пробежится по проекту и соберет все сигнатуры под конкретный ЯП проэкта, запускал этот батник и скармливал ллм мол "о чем тут все, опиши архитектуру". При чем информации в какой последовательности и как у него в принципе не было, я это не описывал вручную, это он все домысливал сам, но совершенно правильно! Если там какие-то неочевидные интеграции или сложные последовательности на фронте, то ему видимо придется скормить ещё кусочки фронта, но в моем случае хватило просто апишки (немаленькая под сотню ендпойнтов) - целиком роутинг, целиком некоторые особо хитрые контроллеры, все остальное чисто сигнатуры . Ну и на текущий момент сэлф-хостед ллм решения типа ЛЛамы скорее всего подобное не потянут и много где нагаллюцинируют. Это большое преимущество новых моделей от топ провайдеров интеллектов - им даже особо описывать вручную ничего не надо, они до всего сами докумекают по контексту.

В 2024 появился чит, который работает - собрать имена всех файлов, пути, классы, сигнатуры методов (без имплементации), структуру баз данных ну и целиком код из роутинга ендпоинтов. Собирается шелл скриптом / батником автоматически в один текстовый файл, потом этот текстовый файл загружаем в клод соннет 3.5 либо оупенаи о1 - и оно все досконально рассказывает о чем этот проект. Ну и дальше когда понятна о чем проект в целом собирать таким образом уже отдельные модули / неймспейсы уже с реализацией и опять спрашивать у ллмки загрузив контекст. Ещё весной-летом это всё было лажей и не работало, последние пару месяцев реально работает. Но, важно, чтоб кодовая база более ли менее следовала базовым кодинг стандартам по неймингу и имела более ли менее вменяемую архитектуру.

Information

Rating
Does not participate
Registered
Activity