Автор Гілка: aichat - консольний клієнт для ChatGPT  (Прочитано 3687 раз)

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3822
  • Карма: +11/-0
  • Програміст
aichat — це клієнт для ChatGPT, який працює в терміналі та надає зручний інтерфейс командного рядка, з підтримкою ролей, контексту, підсвіткою синтаксису коду у відповідях, та інші можливості. Клієнт написаний на Rust. Для роботи, вимагається реєстрація на сайті ChatGPT та отримання ключа для інтерфейсу.

aichat можна використовувати наприклад для того щоб отримати довідку про якусь команду українською мовою (часом переходить на російську, тому треба нагадувати), або написати короткий скрипт на bash, perl, чи python, або просто потеревенити.

Сторінка проєкту: https://github.com/sigoden/aichat/
[Fedora Linux]

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3822
  • Карма: +11/-0
  • Програміст
Re: aichat - консольний клієнт для ChatGPT
« Відповідей #1 : 2023-03-20 13:27:07 »
Приклад спілкування.

Цитата
〉Створи документ latex для наукової роботи українською мовою. Лише шаблон. Назва: Дослідження придатності різних операційних систем для використання у зв'язку. Автор: Володимир Лісівка. Рік: 2023. Решта полів та даних згенеруй сам.
\documentclass[a4paper,12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T2A]{fontenc}
\usepackage[ukrainian]{babel}
\usepackage{amsmath,amsfonts,amssymb,amsthm,mathtools}
\usepackage{graphicx}
\usepackage{float}
\usepackage[margin=2cm]{geometry}
\usepackage{tocloft}

\newtheorem{theorem}{Теорема}[section]
\newtheorem{lemma}[theorem]{Лема}
\newtheorem{corollary}[theorem]{Наслідок}

\theoremstyle{definition}
\newtheorem{definition}{Означення}[section]
\newtheorem{example}{Приклад}[section]

\theoremstyle{remark}
\newtheorem*{remark}{Зауваження}

\renewcommand{\cftsecleader}{\cftdotfill{\cftdotsep}}
\renewcommand{\contentsname}{Зміст}

\title{Дослідження придатності різних операційних систем для використання у зв'язку}
\author{Володимир Лісівка}
\date{2023}

\begin{document}
\maketitle
\thispagestyle{empty}
\newpage

\tableofcontents
\newpage

\section{Вступ}

В сучасному світі використання різних операційних систем у зв'язку має велике значення. Хоча в кожній операційній системі є свої переваги і недоліки, але вибір операційної системи для використання у зв'язку повинен бути обґрунтований.

В даній роботі ми проведемо дослідження придатності різних операційних систем для використання у зв'язку та проаналізуємо отримані результати.

\section{Розділ 1: Огляд операційних систем}

В цьому розділі ми розглянемо основні операційні системи, які найчастіше використовуються у зв'язку.

\subsection{Linux}

Linux є безкоштовною і відкритою операційною системою, яку можна використовувати як на персональних комп'ютерах, так і на серверах. Linux має велику кількість різних дистрибутивів, які відрізняються за цільовими призначеннями та складом програмного забезпечення.

Перевагами Linux є:

\begin{itemize}
\item наявність відкритого вихідного коду;
\item можливість налаштування під потреби користувача;
\item висока стійкість до злому та вірусів;
\item велика кількість безкоштовного програмного забезпечення.
\end{itemize}

Недоліками Linux є:

\begin{itemize}
\item складність використання для новачків;
\item обмежена підтримка деяких програм;
\item проблеми з драйверами пристроїв.
\end{itemize}

\subsection{Windows}

Windows є комерційною операційною системою, яка створена корпорацією Microsoft. Windows є однією з найпоширеніших операційних систем в світі і використовується як на персональних комп'ютерах, так і на серверах.

Перевагами Windows є:

\begin{itemize}
\item простота використання;
\item добре розроблений інтерфейс користувача;
\item широка підтримка програмного забезпечення;
\item простота встановлення та налаштування.
\end{itemize}

Недоліки Windows є:

\begin{itemize}
\item віруси та шпигунське програмне забезпечення;
\item необхідність платити за ліцензійне програмне забезпечення;
\item нестабільність роботи під великим навантаженням.
\end{itemize}

\subsection{Mac OS}

Mac OS є операційною системою, розробленою компанією Apple для використання на її комп'ютерах Mac. Mac OS є досить популярною в умовах дизайнерських фірм та медіа-й компаній.

Переваги Mac OS є:

\begin{itemize}
\item висока стійкість та безпека;
\item добре розроблений інтерфейс користувача;
\item відмінна підтримка мультимедіа;
\item високий рівень якості обладнання.
\end{itemize}

Недоліки Mac OS є:

\begin{itemize}
\item висока ціна;
\item нестабільність роботи із стороннім програмним забезпеченням;
\item обмежена кількість програмного забезпечення.
\end{itemize}

\section{Розділ 2: Оцінка придатності операційних систем у зв'язку}

В цьому розділі ми проведемо оцінку придатності різних операційних систем для використання у зв'язку, використовуючи критерії надійності, продуктивності та безпеки.

\subsection{Надійність}

Надійність є важливим критерієм для операційних систем, які використовуються у зв'язку. Надійність означає можливість забезпечення стабільної роботи системи протягом тривалого часу.

Linux має високий рівень надійності, оскільки має відкритий вихідний код та широку базу користувачів, які допомагають у виявленні та виправленні помилок. Windows має помірний рівень надійності, оскільки має закритий вихідний код та меншу кількість користувачів. Mac OS має високий рівень надійності, оскільки є добре протестованою та має високий рівень якості обладнання.

\subsection{Продуктивність}

Продуктивність є ще одним важливим критерієм для операційних систем у зв'язку. Продуктивність означає швидкість роботи системи та можливість виконання завдань у відповідний строк.

Linux має високий рівень продуктивності, оскільки добре пристосований для виконання різних завдань. Windows має помірний рівень продуктивності, оскільки може сповільнюватися за певних умов. Mac OS має високий рівень продуктивності, оскільки є добре протестованою та має високий рівень якості обладнання.

\subsection{Безпека}

Безпека є найважливішим критерієм для операційних систем у зв'язку. Безпека означає можливість захисту системи від злому та вірусів.

Linux має високий рівень безпеки, оскільки має велику кількість безкоштовного програмного забезпечення для захисту системи. Windows має помірний рівень безпеки, оскільки потребує встановлення додаткового програмного забезпечення для захисту системи. Mac OS має високий рівень безпеки, оскільки є добре протестованою та має високий рівень якості обладнання.

\subsection{Висновки}

На основі проведеного дослідження можна зробити висновок про придатність операційних систем для використання у зв'язку.

Linux є оптимальним вибором для використання у зв'язку з точки зору надійності та безпеки. Windows є оптимальним вибором для використання у зв'язку з точки зору простоти та широкої підтримки програмного забезпечення. Mac OS є оптимальним вибором для використання у зв'язку з точки зору продуктивності та якості обладнання.

Отже, вибір операційної системи для використання у зв'язку повинен бути зроблений з урахуванням конкретних потреб користувача та призначення системи.

[Fedora Linux]

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3822
  • Карма: +11/-0
  • Програміст
Re: aichat - консольний клієнт для ChatGPT
« Відповідей #2 : 2023-03-20 17:06:53 »
Переклад інструкції до aichat з допомогою aichat у ролі перекладача.

Цитата
Чат з gpt-3.5/chatgpt в терміналі.

Встановлення

З компіляцією

встановити через cargo:
cargo install --force aichat

Виконати з цієї ж папки або додати папку до PATH.

Особливості

    Predefine AI roles # задані AI-ролі
    Use GPT prompt easily # просте використання GPT prompt
    Powerful Chat REPL # потужний чат REPL
    Context-ware conversation # розумний контекст
    syntax highlighting markdown and other 200 languages # підсвічування підтримуються
    Stream output with hand typing effect # потоковий виведення з ефектом набору тексту
    Multiline input support and emacs-like editing experience # вводьте безліч рядків і редагуйте їх як в Emacs
    Support proxy # підтримка проксі
    Support dark/light theme # підтримка темних/світлих тем
    Save chat messages # зберігає повідомлення на чат

Конфігурація

При першому запуску aichat проведе Вас через налаштування.

> No config file, create a new one? Yes
> Openai API Key: sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
> Use proxy? Yes
> Set proxy: socks5://127.0.0.1:1080
> Save chat messages Yes

Після налаштування, конфігураційний файл автоматично створиться. Звісно, Ви також можете вручну налаштувати конфігураційний файл.

api_key: "<YOUR SECRET API KEY>"  # отримайте перший ключ API через https://platform.openai.com/account/api-keys
temperature: 1.0                  # опціонально, докладніше див. https://platform.openai.com/docs/api-reference/chat/create#chat/create-temperature
save: true                        # Якщо встановлено "true", то aichat зберігає початкове повідомлення у message.md.
highlight: true                   # Опціонально, встановіть "false", щоб вимкнути підсвічування.
proxy: "socks5://127.0.0.1:1080"  # Опціонально, встановити сервер proxy. наприклад, http://127.0.0.1:8080 or socks5://127.0.0.1:1080
conversation_first: false         # Опціонально, Якщо встановлено "true", включає автоматичний запуск розмови на початку REPL
light_theme: false                # Опціонально, Якщо встановлено "true", використовуйте світлу тему.

Ви можете використовувати .info, щоб переглянути поточний шлях кінфігураційного файлу та файлу ролей.

Ви можете використати змінні оточення, щоб налаштувати певні елементи конфігурації.

Roles

Ми можемо дати ChatGPT грати в роль, щоб краще зрозуміти, що ми хочемо згенерувати.

Ми можемо попередньо задати набір ролей в файлі roles.yaml.

    Можна отримати місцезнаходження файлу roles.yaml через команду .info

Наприклад, ми визначимо роль

- name: shell
  prompt: >
    Я хочу, щоб ви виступили як експерт з linux shell.
    Я хочу, щоб ви відповідали тільки кодом bash.
    Не надавайте пояснень.
  # temperature: 0.3

Дозвольте ChatGPT відповісти на запитання у витягненні зашифрованого zipfile app.zip в /tmp/app.

〉.role shell

shell〉 extract encrypted zipfile app.zip to /tmp/app
---
mkdir /tmp/app
unzip -P PASSWORD app.zip -d /tmp/app
---

Ми надали багато прикладів ролей.

CLI

Потужний cli для chatgpt.

Використання: aichat [OPTIONS] [TEXT]...

Аргументи:
  [TEXT]...  Введений текст

Опції:
  -p, --prompt <PROMPT>  Встановити GPT-підказку
  -H, --no-highlight     Вимкнути підсвічування синтаксису
  -S, --no-stream        Не потоковий вивід
      --list-roles       Перелічити всі ролі
  -r, --role <ROLE>      Вибрати роль
  -h, --help             Показати допомогу
  -V, --version          Показати версію

Режим команди

aichat math 3.8x4

Керування підсвіткою та потоковим виведенням

aichat how to post a json in rust         # підсвічування, потоковий вивід
aichat -H -S how to post a json in rust   # без підсвічування, виведення все враз

Ввід / вивід каналу

# конвертуємо toml в json
cat data.toml | aichat turn toml below to json > data.json

Режим чату

Якщо немає вхідних даних, ввійдіть в чат REPL.

$ aichat
Welcome to aichat 0.5.0                          # вітання з версією
Type ".help" for more information.


Chat REPL

aichat має потужний REPL-чат.

Chat REPL підтримує наступне:
    Emacs keybinding
    Command autocompletion
    History search
    Fish-style history autosuggestion hints
    Edit/past multiline input
    Undo support
    Clipboard integration

Режим редагування декількох рядків

Запишіть { або ( в початку рядка, щоб увійти в режим редагування декількох рядків. У цьому режимі можна вводити або вставляти декілька рядків тексту. Введіть відповідний } або ) на кінці рядка, щоб вийти з режиму та відправити контент.

〉{ convert json below to toml
{
  "an": [
    "arbitrarily",
    "nested"
  ],
  "data": "structure"
}}

.help - вивести довідкову інформацію

〉.help
.info                    Вивести інформацію
.set                     Тимчасове змінення конфігурації
.prompt                  Додати GPT-підказку
.role                    Вибрати роль
.clear role              Позбутися вибраної ролі
.conversation            Розпочати розмову
.clear conversation      Закінчити поточну розмову
.history                 Вивести історію записів
.clear history           Очистити історію записів
.help                    Вивести це довідкове повідомлення
.exit                    Вийти з REPL

Введіть `{`, щоб увійти в режим редагування декількох рядків, або введіть '}' для виходу з цього режиму.
Натисніть Ctrl+C, щоб перервати readline, або Ctrl+D, щоб вийти з REPL

.info - переглянути інформацію про поточну конфігурацію.

〉.info
config_file         /home/alice/.config/aichat/config.yaml
roles_file          /home/alice/.config/aichat/roles.yaml
messages_file       /home/alice/.config/aichat/messages.md
api_key             sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
temperature         -
save                true
highlight           true
proxy               -
conversation_first  false
light_theme         false
dry_run             false

.set - змінити конфігурацію тимчасово.

〉.set highlight false
〉.set save false
〉.set temperature 1.2

.prompt - використовувати GPT prompt

Кожен пізніший повідомлення буде містити prompt.

〉{ .prompt
Я хочу щоб ти переклав речення, які я написав, за допомогою емотиконів.
Я напишу речення, а ти виразиш його з емотиконами.
Я просто хочу, щоб ти виразив це емотиконами.
Я хочу, щоб ти відповів лише емотиконами.
}
Зроблено.

P〉Ти геній
👉🧠💡👨‍🎓

P〉Мені соромно
🙈😳

.prompt насправді створює тимчасову роль зі своїм ім'ям - %TEMP%. Щоб її очистити, запустіть .clear role

Якщо ви задоволені prompt, додайте його до roles.yaml для подальшого використання.
.role - дайте іграшці грати за роль

Виберіть роль.

〉.role emoji
name: emoji
prompt: Я хочу щоб ти переклав речення, які я написав, за допомогою емотиконів. Я напишу речення, а ти виразиш його з емотиконами. Я просто хочу, щоб ти виразив це емотиконами. Я не хочу, щоб ти відповів нічим крім емотиконів. Якщо мені потрібно щось сказати тобі англійською, я зроблю це, обернувши його фігурними дужками, як от {от цього}.
temperature: null

AI грає за вказану нами роль.

emoji〉привіт
👋

Очистити вибрану роль

emoji〉.clear role

〉привіт
Привіт! Як я можу Вам допомогти сьогодні?

.conversation - розпочати розмову з урахуванням контексту

За замовчуванням aichat працює в режимі запит/відповідь.

Використовуйте .conversation, щоб увійти в режим з урахуванням контексту, або встановіть config.conversation_first true , щоб запустити розмову відразу після запуску.

〉.conversation

$list 1 to 5, one per line                                                              4089
1
2
3
4
5

$reverse the list                                                                       4065
5
4
3
2
1

$.clear conversation                                                                    4043



Заходимо в режим розмови, prompt 〉 зміниться на $, з права з'явиться число, це означає скільки жетонів залишилося до використання. Коли це число стає рівним нулю, потрібно розпочати нову розмову.

Ліцензія.

Copyright (c) 2023 aichat-developers.

aichat доступний на умовах ліцензії MIT або Apache License 2.0 на ваш вибір.

Для отримання детальної інформації про ліцензію дивіться файли LICENSE-APACHE та LICENSE-MIT.
[Fedora Linux]