Инструмент командной строки для запуска команд GPT. Этот инструмент поддерживает плагины с помощью оперативных цепочек, цепочки операций и CHATGPT.
Используйте этот инструмент, чтобы
Вам нужно будет создать ключ API OpenAI. Если у вас есть учетная запись, вы можете создать ключ здесь
https://platform.openai.com/account/api-keys
Не делитесь своим ключом API с другими и не подвергайте его в браузере или в другом коде клиента. Вы будете нести какие -либо платы, если кто -то использует ваш ключ. Не проверяйте свой ключ в любом общественном хранилище.
Создайте файл, который содержит ваш ключ API (приведенный ниже, не реально). В нашем примере. Назовим файл api_key и добавляем ключ.
sk-gKtTxOumv4orO6cfWlh0ZK
Убедитесь, что у вас установлен DART. Следуйте инструкциям, в ссылке ниже.
https://dart.dev/get-dart
После установки вы можете установить программу GPT со следующей командой
Dart Pub Global Activate GPT
Ниже приведены поддержанные варианты использования
Запустите команду Generate Project
air genp
Вам сначала нужно будет выбрать архетип
? Project Archetype ›
❯ Prompt
Chain
Batch
Image
ChatGPT Plugin
Введите имя ProjectName и ProjectVersion
✔ Project Archetype · Prompt
✔ Project Name: · myproject
✔ Project Version: · 1.0
В зависимости от проекта, вам может потребоваться ввести ключ API. Вы можете пропустить, использовать существующий файл ключа или создать новый файл ключа
? Import Key ›
❯ Skip
Use Existing OpenAI API Key File
Create New OpenAI API Key File
Следующий параметр позволяет нам напрямую ввести клавишу API. Это сохранит ключ в файл. Если у вас есть проблемы с копированием и вставкой ключа, просто введите несколько символов, а затем отредактируйте файл после этого.
✔ Import Key · Create New OpenAI API Key File
? API Key: › sk-gKtTxOumv4orO6cfWlh0ZK
Проект плагина CHATGPT позволяет вам быстро прототипировать плагин CHATGPT. В частности, это позволяет издеваться над ответами на CHATGPT. Проект основан на проекте QuickStart по адресу: https://github.com/openai/plugins-quickstart
Ваш файл проекта будет выглядеть как
---
projectName : plugin-quickstart
projectVersion : ' 1.0 '
projectType : plugin
defaultConfig :
properties :
port : 5003
nameForHuman : TODO Plugin (no auth)
nameForModel : todo
descriptionForHuman : Plugin for managing a TODO list, you can add, remove and view your TODOs.
mockedRequests :
- path : " /todos/global "
method : get
mockedResponse : todos-global.json
- path : " /todos/user "
method : get
mockedResponse : todos-global.json
pluginServers :
- serverId : todo-mike
flavor : mike
# mocked requests
mockedRequests :
- path : " /todos/mike "
method : get
mockedResponse : todos.json # returns the content of this file
# Adds a different user for testing
- serverId : todo-kaleb
flavor : kaleb
mockedRequests :
- path : " /todos/kaleb "
method : get
mockedResponse : todos.json
properties :
showHttpHeaders : true # Show http headers in logsЛюбая конфигурация в узле DefaultConfig будет применена к каждому плагинтеру, если этот плагин специально не переопределяет свойство.
Образец высмеиваемого ответа ( todos.json ) приведен ниже. Это будет возвращено на звонок /todos /mike
{
"todos" : [
" Clean out a septic tank " ,
" Repair a broken sewer pipe " ,
" Collect roadkill for disposal " ,
" Assist in bee hive relocation " ,
" Service a grease trap at a restaurant "
]
}Чтобы запустить высмеивающий экземпляр сервера плагинов
air plugin
или запустить конкретный сервер добавить опцию ServerID
air plugin --serverId todo-mike
Для получения дополнительной информации о создании и использовании Chatgpt-Plugin
Если вы решили создать проект изображения, вас попросят описание. Не волнуйтесь, вы можете изменить его позже после создания проекта.
? Image Description: › A goldfish with big eyes
Ваш файл проекта будет выглядеть как
projectName : image-2
projectVersion : 2.0
apiKeyFile : api_key
blocks :
- blockId : image-block-1
pluginName : ImageGptPlugin
executions :
# First Image
- id : img-1
sizes :
- 256
- 256
- 1024
prompt : image.prompt
properties :
imageDescription : A goldfish with big eyesВы прикажите файл
Generate a picture of a ${imageDescription}
Для получения дополнительной информации об изображениях

Следующее спрашивает, сколько раз выполнять пакетные данные. Если вы выберете 5 раз, он запустит все вызовы пакетов данных по 5 раз каждый.
? Number of Times to Run The Block: › 5
Вы увидите файл проекта, как следующее
---
projectName : mybatch
projectVersion : 1.0
apiKeyFile : api_key
blocks :
- blockId : batch-1
pluginName : BatchGptPlugin
blockRuns : 5
configuration :
requestParams :
model : gpt-3.5-turbo
temperature : 0.7
top_p : 1
max_tokens : 500
executions :
- id : batch-1
dataFile : batch-data.json
prompt : batch.promptПодсказка - это простая подсказка Hello World
Write me a paragraph about the world I live in
World: ```${my_world}```
Файл pactor-data.json содержит пакетные данные.
{
"my_world" : [
" Hello World, I live in a magical place with magical creatures " ,
" Hello World, I live in a futuristic Utopia " ,
" Hello World, I live in a futuristic Dystopia "
]
}Измените эти два файла с помощью ваших собственных данных. Для получения дополнительной информации о партиях
Следующее спрашивает, сколько раз запустить запрос на операцию. Если вы выберете 5 раз, он запустит весь запрос на подсказку 5 раз.
? Number of Times to Run The Block: › 5
Затем выберите выходной формат. Вы просто хотите прямой текстовый ответ, или вы хотите его в формате JSON.
? Response Format ›
JSON
❯ TEXT
Если вы выберете JSON, вас спросят, хотите ли вы включить ответ JSON. Это попытается проанализировать любой посторонний текст, который может добавить помощник искусственного интеллекта.
? Attempt to FIX JSON Responses? (y/n) › no
Файл проекта будет выглядеть как
---
projectName : prompt-1
projectVersion : 1.0
apiKeyFile : api_key
blocks :
- blockId : single-1
pluginName : ExperimentGptPlugin
blockRuns : 5
configuration :
requestParams :
model : gpt-3.5-turbo
temperature : 1.2
top_p : 1
max_tokens : 500
executions :
- id : exp-1
responseFormat : json
fixJson : false
promptChain :
- prompt-json.prompt
properties :
character : Commander in Starfleet
mainCharacterName : ' '
- blockId : report-1
pluginName : ReportingGptPlugin
executions :
- id : report-1
blockIds :
- single-1Файл включает в себя некоторые значения по умолчанию для запросов OpenAI. Измените их в соответствии с вашими потребностями. По умолчанию он также добавляет плагин отчетности, который сгенерировал HTML -вывод ответа пользователя/помощника.
Rample-json.prompt выглядит как следующее. Обратите внимание, как вывод определяет использование JSON. Измените подсказку и свойства в соответствии с вашими потребностями.
Write me a story about ${character}. The main character is ${mainCharacterName}.
If no main character is given, choose one. Write one sentence only.
The response should be in JSON using the following structure:
Only use these fields. {"mainCharacterName": "", "story": ""}
Для получения дополнительной информации о подсках
Выберите Archetype Archetype цепного проекта. Затем пройдите через варианты.
? Number of Times to Run The Block: › 1
? Attempt to FIX JSON Responses? (y/n) › yes
? Number of Times to Run The Prompt Chain: › 2
Сгенерированный файл project.yaml .
---
projectName : " chain-project "
projectVersion : " 1.0 "
apiKeyFile : " api_key "
blocks :
# Block demonstrates the use of importing properties
- blockId : chain-1
pluginName : ExperimentGptPlugin
blockRuns : 1 # Number of Stories
configuration :
requestParams :
model : gpt-3.5-turbo
temperature : 1.2
top_p : 1
max_tokens : 500
executions :
- id : exp-1-import
chainRuns : 2 # Number of times to run the promptChain
promptChain :
- story.prompt
- user-action.prompt # Simulates user input
excludesMessageHistory :
- user-action.prompt
fixJson : true
responseFormat : json
# Import properties from a properties file
import :
propertiesFile : properties.json # predefined values
properties :
planet : 1 # Earth
action : 3 # Lands on the planet
- blockId : report-1
pluginName : ReportingGptPlugin
executions :
- id : report-1
blockIds :
- chain-1Поля свойств в вышеуказанном проекте. Файл . Этот файл позволяет легко изменить тестовый ввод.
{
"planet" : [
" Earth " ,
" Venus " ,
" Jupiter "
],
"action" : [
" Blows up the planet " ,
" Observes the planet From Orbit " ,
" Lands on the planet " ,
" Zips around the planet and hopes no one notices "
]
}Инструмент заменит планету «Землю», а действие «приземляется на планете» в подсказку истории ниже. Обратите внимание, что ИИ будет генерировать имя персонажа и первый абзац истории.
The response will be in JSON Format.
Captain ${captainsName} is near ${planet}. .
The last part of the story is: ${story}
Then the captain ${action}
Tell me a story about what happens next.
Be very descriptive. Write two sentences only.
Give me the captains name, if I haven't given it.
RESPONSE
The response must only be in JSON using the following structure.
Only use these fields. {"captainsName": "${captainsName}", "story": ""}
Инструмент теперь передаст имя возвращенного капитана и историю из первого подсказки в пользовательский Action.prompt . Мы вернем действие, которое предпринимает персонаж.
Give me an action for ${captainsName} for the following story:
${story}
The response must be in JSON using the following structure.
Only use these fields. {"action": ""}
Теперь мы будем запустить историю. Попробуйте снова, но на этот раз у нас будет и имя капитана, и следующее действие, которое он предпримет.
Следующая выборочная вывода из фактического прогона
As Captain John lands on the planet, he feels the trembling beneath his feet and sees the vibrant green flora around him.
He plants the Earth's flag to claim its new discovery and soon finds a thriving alien civilization welcoming him with open arms.
[user action "plants the flag to claim the new discovery"]
As Captain John plants the Earth's flag on the newfound planet, he is approached by the leaders of the alien civilization
who speak his language and reveal that they have known about Earth for centuries. They invite him to partake in a feast in
his honor, where he learns about their advanced technology and way of life.
Обратите внимание, что цепный запуск такой же, как и количество абзацев, которые у нас есть в выводе. Если бы мы хотели еще один абзац, мы бы поставили бы цепные сечения 3. Если бы мы установили Blockruns на 5, мы бы сгенерировали 5 разных историй.
Для получения дополнительной информации о цепях
Чтобы сгенерировать отчет HTML, добавьте отчеты в качестве последнего блока. Под Blockids добавьте любой предыдущий идентификатор блока, который вы хотите добавить в сгенерированный отчет.
---
projectName : experiment-reporting
projectVersion : ' 1.7 '
apiKeyFile : " ../../api_key "
blocks :
- blockId : chain-1
pluginName : ExperimentGptPlugin
blockRuns : 1
...
# Generate HTML Report
- blockId : report-1
pluginName : ReportingGptPlugin
executions :
- id : report-execution
blockIds :
- chain-1 В отчете будет отображаться весь чат для настройки блоков.

Для получения дополнительной информации о отчетности
Воздух -Хельп
A command line tool for running GPT commands
Usage: air <command> [arguments]
Global options:
-h, --help Print this usage information.
Available commands:
clean Cleans project's output directory
count Returns the number of OpenApiCalls that would be made
genp Generates a new project
plugin Runs local version of ChatGPT Plugin
run Runs a project's blocks
Run "air help <command>" for more information about a command.
Чтобы очистить проект, запустите следующее
воздух чистка
Это удаляет выходной каталог для проекта.
Запуск вызовов OpenAI с помощью инструмента может быть дорогостоящим, если вы неправильно настроите его. Чтобы определить, сколько вызовов Openai создаст проект, запустите следующую команду
количество воздуха
или для подсчета определенного блока
количество воздуха -b myblockid
Он выведет
Project: product-summary-2.8
Total OpenAPI Calls would be 12
Если вы хотите знать, что ваш проект выполняет, прежде чем затрат на открытие, используйте флаг Dryrun.
Air Run -Dryrun
Executing Block
Running Project: image-generation-2.3
BlockId: image-1, PluginName: ImageGptPlugin
----------
Starting Block Run: 1
Starting execution: 1 - Requires 1 calls to OpenAI
POST to https://api.openai.com/v1/images/generations
{"prompt":"Generate a picture of a Unicorn with a gold horn and wings","n":1,"size":"256x256","response_format":"url"}
Finished execution: 1
Starting execution: 2 - Requires 2 calls to OpenAI
POST to https://api.openai.com/v1/images/generations
{"prompt":"Generate a picture of a fish with giant eyes","n":1,"size":"256x256","response_format":"b64_json"}
POST to https://api.openai.com/v1/images/generations
{"prompt":"Generate a picture of a fish with giant eyes","n":1,"size":"512x512","response_format":"b64_json"}
Finished execution: 2
--------
Finished running project: 0 seconds