Что, черт возьми, такое GPTScript?

Что, черт возьми, такое GPTScript?

18 апреля 2024 г.

Введение

В конце 2023 года я подумывал написать статью о работе Acorn Labs по упрощению контейнеров Kubernetes. Я даже начал и написал несколько абзацев, но потом занялся другими делами. В то время, когда я собирался вернуться к нему в феврале 2024 года, они сделали пару объявлений; один был для Рубры, а другой был скорее личным проектом одного из соучредителей, Даррена Шеперда, называемый GPTScript.

Этот проект оказался настолько захватывающим, что месяц спустя Acorn объявили, что они меняют фокус своей компании на GPTScript (не знаю, что произойдет с Rubra).

Я слежу за всеми событиями в этом проекте внимательнее, чем обычно, потому что нахожу его совершенно потрясающим как технология реализации. Это напоминает мне философию продукта, с которым я работал еще в 80-х и 90-х годах, под названием MPEX от VESOFT, написанную Евгением Волохом.

То, что Даррен сделал с GPTScript, поначалу сложно усвоить, особенно программисту. Я еще не провел с этим достаточно времени, чтобы полностью понять все последствия, но у меня есть много мыслей по этому поводу.

В этой статье я расскажу вам об основных вводных сведениях и примерах, а также подумаю о том, где вы могли бы это использовать.

Начало работы

Я работал с документами, различными видеороликами и примерами; Я попробовал это на своем ноутбуке с Windows 11. Давайте установим эту присоску:

| winget install gptscript-ai.gptscript n $env:OPENAI_API_KEY = 'ваш-api-ключ' | |----|

В документации на этом этапе предлагается запустить пример «hello world», но это не очень интересно, поэтому давайте попробуем пример «bob». Также обратите внимание, что существует множество встроенных примеров, список которых можно получить, введя команду gptscript—-list-tools и онлайн-examples'.

terminal window of bob output

Как выглядит «bob.gpt»?

terminal window of bob script

Это ставит нас перед некоторыми очевидными вопросами, например, что все это значит и как значение «Как дела?» оказалось в аргументе «вопрос». GPTScript оперирует понятием инструментов, где инструмент описан в файле GPT. Каждый файл может состоять из более чем одного именованного инструмента, разделенного тремя дефисами.

Заимствованное из документации, Параметры инструмента — это пары ключ-значение, определенные в начале блока инструмента перед любым текстом инструкций. Они указываются в формате ключ:значение. Анализатор распознает следующие ключи (без учета регистра и пробелов):

GPTScript parameters

Инструмент начинается с преамбулы, которая определяет имя инструмента, описание, аргументы, доступные инструменты и дополнительные параметры. За преамбулой следует тело инструмента, содержащее инструкции для него. Комментарии в преамбуле представляют собой строки, начинающиеся с #, и игнорируются анализатором. Комментарии на самом деле не приветствуются, поскольку текст обычно более полезен в описании, описаниях аргументов или инструкциях.

Я до сих пор не понимаю, почему Боб задал для аргумента значение по умолчанию. Если бы я аргументировал это, все изменилось бы, так что это было чем-то вроде загадки. Я решил попробовать скрипт samples-readme.gpt, который выглядит вот так:

samples-readme.gpt

Прочитав это, я понял, что мне будет предоставлена ​​сводная информация о каждом файле gpt в каталоге примеров. Когда я впервые попробовал это без аргумента, он не смог найти никаких входных данных, поэтому я попробовал использовать в качестве аргумента файл примера, и это сработало.

Затем я попробовал это с их более крупным примером сценария для hacker-news-headlines, и вместо этого он сделал то, что, по моему мнению, должен был сделать в первый раз. В каталоге примеров был создан файл readme.md с кратким описанием каждого примера.

Я видел, как люди в сообществе начали создавать очень интересные инструменты, которые добавлялись на веб-страницу инструментов GPTScript. Результаты моих тестов были немного неоднозначными. Большинство вещей работало так, как ожидалось, но кое-что не сработало, и у меня не было возможности копать глубже. Тем не менее, это явно мощная вещь, и это всего лишь поверхностный подход.

Сводка

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

Одна из первых вещей, которые пришли на ум, но я не проверял, — можно ли использовать это для управления OpenFoam< /стронг>? OpenFoam — это программное обеспечение CFD с открытым исходным кодом, которое печально известно своей сложностью в использовании, поэтому я так и не научился его использовать. Что, если бы я мог просто описать, что я хотел с этим сделать, и это сработало бы? Представьте, что вы делаете это с помощью любого программного обеспечения с API, с которым вы можете связаться.

Мой разум начинает взрываться, думая об этом. Компания Acorn создала онлайн-каталог «инструментов», который вы можете использовать, и он обновляется с безумной скоростью. . Это действительно интересно.

Прочтите мои другие статьи «Что такое, черт возьми…» по ссылкам ниже:


Оригинал