bito.ai code assistant

Здесь обсуждается всё, что касается макросов.
User avatar
John Doe
Бюрократ
Posts: 14582
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

bito.ai code assistant

Post by John Doe »

Макрос для взаимодействия с ChatGPT в Фаре.

Назначен на Ctrl+B. Также может быть запущен в качестве скрипта LuaShell.

Ctrl+B:Double позволяет в любой момент открыть окно с выводом повторно.

Дополнительные макросы, активные в окне с ответом:
  • Ctrl+Shift+Ins:
    • скопировать выделенный текст, склеив свёрнутые строки обратно в параграфы;
    • при отсутствии выделения ищет и обрабатывает блок кода под курсором.
  • Alt+F2 полностью убрать форматирование (свёртку).
Установка
  • модуль Execute, положить в modules.
  • bito.exe https://github.com/gitbito/CLI/blob/mai ... 6/bito.exe, где угодно в %PATH% (или в %FARHOME%).
    До использования в макросе bito.exe необходимо (однократно) запустить, и последовать инструкциям для аутентификации.
    Внимание: файл для архитектуры x64.
Примечания:
  • Контекст чата (предыдущие вопросы и ответы) сохраняется, и таким образом можно продолжать чат.
  • Файл контекста хранится отдельно от ответа в редакторе, поэтому изменения в редакторе на него не влияют.
  • Контекст сохраняется до тех пор, пока открыто окно с ответом.
    Т.е. пока нужно продолжать чат, требуется держать его открытым, а когда требуется сменить тему, надо его закрыть.
  • Текст форматируется по заданной ширине, изменить можно в тексте скрипта, или через cfgscript/ScriptsBrowser.
    Блоки кода не форматируются.




Скачать: https://gist.github.com/johnd0e/3269d68 ... e/main.zip
!
Message from: John Doe
Разработка данного скрипта прекращена в пользу Ask AI: viewtopic.php?t=13447
https://t.me/FarManager — Telegram чат
User avatar
John Doe
Бюрократ
Posts: 14582
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

Ask AI - bring ChatGPT to Far

Post by John Doe »

Умеет переводить Lua в Moonscript, интересно..
Не без ошибок впрочем
https://t.me/FarManager — Telegram чат
User avatar
John Doe
Бюрократ
Posts: 14582
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

Ask AI - bring ChatGPT to Far

Post by John Doe »

Конечно удивляет, насколько иногда точный можно ответ получить, задавая лаконичный вопрос.
Например: Напиши итератор на луа, который будет возвращать целые строки, читая данные с помощью функции read, возвращающей новую порцию данных (части строк), или nil когда данные исчерпаны


Пробовал задавать вопросы по API фара. Оказывается что он и тут в курсе.
Но в этом вопросе полагаться на него нельзя, много галлюцинирует.
https://t.me/FarManager — Telegram чат
User avatar
John Doe
Бюрократ
Posts: 14582
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

Ask AI - bring ChatGPT to Far

Post by John Doe »

Выложил версию не требующую модуля Execute
https://t.me/FarManager — Telegram чат
User avatar
John Doe
Бюрократ
Posts: 14582
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

Ask AI - bring ChatGPT to Far

Post by John Doe »

Исправление: теперь возможен запуск из модальных окон.
https://t.me/FarManager — Telegram чат
Shmuel
Posts: 7246
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 48 times
Been thanked: 636 times

Ask AI - bring ChatGPT to Far

Post by Shmuel »

Спасибо за скрипт, пользуюсь. Несколько модифицировал под свои нужды.
User avatar
John Doe
Бюрократ
Posts: 14582
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

Ask AI - bring ChatGPT to Far

Post by John Doe »

Разбивка на слова дело хорошее, но результат для пользователя отличается мало.
Главное: сервис и без того возвращает целые слова, просто popen жёстко читает заданное количество байт, и если задано больше чем есть в буфере - ждёт пока будет доступно больше.
А в нашем случае желательно получать сразу то что есть в буфере, а потом уже ждать следующую порцию данных.

Возможно есть смысл и для линукса обращаться к системным функциям через ffi.
Это также позволило бы помещать данные сразу в stdinput, а не создавать промежуточные файлы (это есть в моей версии execute.lua).
https://t.me/FarManager — Telegram чат
Shmuel
Posts: 7246
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 48 times
Been thanked: 636 times

Ask AI - bring ChatGPT to Far

Post by Shmuel »

John Doe wrote: Sat 05 Aug, 2023 13:29 Разбивка на слова дело хорошее, но результат для пользователя отличается мало.
Я сделал разбивку на слова не из спортивного интереса, а потому, что не работало ограничение linewrap=80, и длина некоторых строк превышала ширину редактора.
User avatar
John Doe
Бюрократ
Posts: 14582
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

Ask AI - bring ChatGPT to Far

Post by John Doe »

Shmuel wrote: Sat 05 Aug, 2023 14:00 длина некоторых строк превышала ширину редактора.
Да, я это и имел ввиду, учитывая что ширина редактора обычно намного больше 80, и отдельные превышения не слишком заметны.

Впрочем, тот факт что вы этим занялись, говорит о другом.
(Сам я пользуюсь вариантом с execute.lua)

Кстати, я видел вы улучшали апи LuaFAR2m, и хочу обратить внимание на ещё одно потенциальное улучшение: для InsertString предусмотрен параметр AutoIndent, а для InsertText нет.
https://t.me/FarManager — Telegram чат
Shmuel
Posts: 7246
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 48 times
Been thanked: 636 times

Ask AI - bring ChatGPT to Far

Post by Shmuel »

John Doe wrote: Sat 05 Aug, 2023 14:18 учитывая что ширина редактора обычно намного больше 80, и отдельные превышения не слишком заметны.
У меня ширина редактора на виртуальной машине = 115, а выводились строки даже длиной 160.
Если есть параметр ограничения, то как по мне он должен работать прямолинейно, ограничивая длину строк своей величиной.
User avatar
John Doe
Бюрократ
Posts: 14582
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

Ask AI - bring ChatGPT to Far

Post by John Doe »

Shmuel wrote: Sat 05 Aug, 2023 14:31 , а выводились строки даже длиной 160.
Вероятно мой регэксп не всё учитывает.
Shmuel wrote: Sat 05 Aug, 2023 14:31 Если есть параметр ограничения, то как по мне он должен работать прямолинейно, ограничивая длину строк своей величиной.
С этим не поспоришь. Тем более и код готовый есть, надо брать)
https://t.me/FarManager — Telegram чат
User avatar
John Doe
Бюрократ
Posts: 14582
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

Ask AI - bring ChatGPT to Far

Post by John Doe »

Обновление
  • Разбивка на слова (из https://github.com/shmuz/luafar2m/blob/ ... y/bito.lua)
  • Prompt теперь тоже печатается в редакторе. Можно не закрывая редактор вызывать макрос повторно, и это будет похоже на продолжение диалога
https://t.me/FarManager — Telegram чат
gotar
Posts: 519
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 31 times
Been thanked: 3 times

Ask AI - bring ChatGPT to Far

Post by gotar »

То ли я не умею писать промты, то ли bito очень тупой. Может кто подскажет другой AI или подскажет как правильно переформулировать prompt Как на C запустить команду перенаправив ей в качестве стандартного ввода строку из переменной и направив стандартный вывод в массив строк. Мне казалось что такая программа как раз для искусственного интеллекта: в ней нужно аккуратно написать много pipe, dup2 и close. Ничего похожего bito не пишет.
Last edited by gotar on Mon 07 Aug, 2023 11:57, edited 1 time in total.
User avatar
John Doe
Бюрократ
Posts: 14582
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

Ask AI - bring ChatGPT to Far

Post by John Doe »

Bito не какой-то особенный сервис. Это типичный ChatGPT, доступный сейчас в десятках разных сервисов.
Вот пример моей формулировки:
Мне нужно чтобы ты написал код на C для windows, который будет запускать внешнюю программу, передавая ей на ввод строку, и получая ее вывод. Результат я хочу получить в виде массива строк.
Вот результат:

Не bito, его под рукой нет.

P.S.
Спасибо, теперь напиши аналогичный код для C под Linux

А как сделать то же на python?
Last edited by John Doe on Mon 07 Aug, 2023 14:37, edited 1 time in total.
https://t.me/FarManager — Telegram чат
User avatar
John Doe
Бюрократ
Posts: 14582
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

Ask AI - bring ChatGPT to Far

Post by John Doe »

https://github.com/gitbito/CLI/raw/main ... 4/bito.exe

Code: Select all

--- Version 3.3
+++ Version 3.4
@@ -19 +19,2 @@
-              to the prompt before processing.
+              to the prompt before processing. In case -f is not provided along with -p then CLI will prompt for
+             content to proceed ahead.
@@ -22,0 +24,3 @@
+-m, --model   [Model type to use for AI query in the current session. Model type can be set to BASIC/ADVANCED, which
+               is case insensitive.]
+-k, --key     [Expects Bito Access Key to be used for executing Bito CLI. Bito Access Key can be generated at: https://alpha.bito.ai/home/settings/advanced]
Новая версия требует дополнительной настройки - нужно сгенерировать ключ, после чего запустить bito.exe config -e, и вставить его в конфиг.
Но можно просто остаться на предыдущей версии.
https://t.me/FarManager — Telegram чат
Post Reply

Return to “Обсуждение макросов”