Гениальный плагин для обсидиана, написанный (на удивление) на rust . Добавляет в обсидиан chat gpt, но со своими приколами.
Архитектура
Плагин, как слоеный пирог состоит из трех слоев:
верхний (фронт на ts)
средний (chatgpt)
нижний (MKADb )
Как должен работать верхний слой
Эта секция написана для тебя, Кирилл . Общение юзера с гпт представляет с собой бесконечный эвент луп. При каждом введеном сообщении юзера должен обрабатываться один и тот же код. Вот как примерно должен выглядеть pipeline диалога:
loop {
сообщение = сообщение юзера
тип = запрос к гпт (выбери, что делать : ответить стандартно, анализ заметок, другое)
match тип {
анализ => анализ()
стандартный ответ => ответ()
другое => другое()
}
}
fn анализ() {
категории = все категории кейвордов from MKADB
нужные категории = запрос к гпт (выбери подходящие категории с кейвордами для ответа на вопрос)
нужные ключевые слова = запрос к гпт (выбери подходящие ключевые слова из (получить кейворды из категорий))
настройка фильтра для поиска по ключевым словам
поиск по ключевым словам заметок
делаем самари для заметок, если его нет
добавляем в контекст самари заметок но не показываем их юзеру
вывести(запрос к гпт(весь контекст))
}
fn ответ() {
вывести(запрос к гпт(весь контекст))
}
fn другое() {
а это потом
}