2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

gptscriptで英語のファイルを翻訳する

Last updated at Posted at 2024-05-02

毎度、ググっても出てこない小ネタを取り扱っております。
本記事は個人的な見解であり、筆者の所属するいかなる団体にも関係ございません。

0. はじめに

以前、書いた「GPTScriptで遊ぶ」の第2弾です。

今回は、GPTScriptを使って英語のファイルを翻訳してみたいと思います。

1. GPTScriptについて

GPTScriptとは?
以下のGitHubをご確認いただければと思います。
gptscript-ai/gptscript: Natural Language Programming

2. GPTScriptを使うメリット

一般的なChatGPTを使った操作でファイルを翻訳する方法は、以下のようになります。

  1. ChatGPT等の生成AIのチャットウィンドウを開く
  2. 翻訳したいファイルを開いて、ファイルの中身をクリップボードにコピーする
  3. 開いているチャットウィンドウにテキストを翻訳するようなプロンプトを入力する
  4. プロンプトの下にクリップボードのコピーされているテキストを貼り付ける
  5. プロンプトを実行
  6. 出力された結果を選択して、クリップボードへコピーする
  7. クリップボードへコピーされた翻訳結果をファイルへ貼り付けて保存する

という段階を経る必要があります。

なんだか、大変ですよね。

GPTScriptを使うと、GPTScriptを実行したマシン上のファイルを読み込ませることができます。そして、出力結果をファイルに書き出すことができます。さらにプロンプトをファイルとして保存しておくことができるので、ファイルを翻訳するには以下のような操作で実行できます。

  1. GPTScriptを実行するファイルを作成して、そのファイルにファイルを翻訳するプロンプトを書き込む。
  2. プロンプトには、どのファイルを翻訳するか、翻訳した結果をどこに保存するか書いておく。
  3. GPTScriptを実行する

これだけで、翻訳ファイルができあがります。

3. 実際にやってみる

使っているGPTScriptのバージョンは以下の通りです。

$ gptscript -v
gptscript version v0.5.0+5a8a685c

gptscriptに読み込ませるスクリプトは以下の通りです。
ファイル名の拡張子は、.gptにしてください。

translate-README.md-to-japanese.gpt
tools: sys.read, sys.write

README.mdファイルを読み込んで日本語に翻訳した内容をtranslated-README.ja.mdというファイル名で保存してください。
ファイルを翻訳するときに、```や```yamlで囲まれたMarkdownの書式のブロッククオートの中の部分は翻訳しないでください。

ファイルを書き出すときに日本語はUTF-8でエンコードしてください。

この.gptファイルがある場所に、README.mdファイルを置いて、以下のコマンドを実行します。

gptscript ./translate-README.md-to-japanese.gpt -o output.txt

-o output.txtが無いとファイルへ書き込み時に標準出力でエラーが発生して、以下のようにスクリプトが終了します。
image.png

4. 日本語への変換結果

変換されたGPTScriptのREADME.mdファイルです。


GPTScript

概要

GPTScriptは、OpenAIという大規模言語モデル(LLM)とのやり取りを自動化するための新しいスクリプト言語です。最終的な目標は、自然言語プログラミング体験を創出することです。GPTScriptの構文は大部分が自然言語であり、学習しやすく使いやすいです。
自然言語のプロンプトは、bashやpythonのような従来のスクリプトや外部HTTPサービスの呼び出しと混在させることができます。GPTScriptを使えば、休暇の計画ファイルの編集SQLの実行mongodb/flaskアプリの構築など、ほぼ何でも行うことができます。以下はGPTScriptの一般的な使用例です:

  1. 検索拡張生成(RAG)
  2. タスク自動化
  3. エージェントとアシスタント
  4. データ分析
  5. ビジョン、画像、およびオーディオ
  6. メモリ管理
  7. チャットボット
:pencil: 現在、GPTScriptを使ってローカルモデルとのやり取りを行うオプションを探索中です。

以下の例は、英語での指示を書くことで複雑なタスクを達成できる方法を示しています:

# example.gpt

Tools: sys.download, sys.exec, sys.remove

Download https://www.sqlitetutorial.net/wp-content/uploads/2018/03/chinook.zip to a
random file. Then expand the archive to a temporary location as there is a sqlite
database in it.

First inspect the schema of the database to understand the table structure.

Form and run a SQL query to find the artist with the most number of albums and output
the result of that.

When done remove the database file and the downloaded content.
$ gptscript ./example.gpt
OUTPUT:

The artist with the most number of albums in the database is Iron Maiden, with a total
of 21 albums.

クイックスタート

1. 最新リリースをインストール

Homebrew (macOSとLinux)

brew install gptscript-ai/tap/gptscript

インストールスクリプト (macOSとLinux):

curl https://get.gptscript.ai/install.sh | sh

Scoop (Windows)

scoop bucket add extras # If 'extras' is not already enabled
scoop install gptscript

WinGet (Windows)

winget install gptscript-ai.gptscript

手動で

リリースページからプラットフォームとアーキテクチャに合ったアーカイブをダウンロードしてインストールします。

2. OpenAIからAPIキーを取得します。

macOSとLinux

export OPENAI_API_KEY="your-api-key"

代わりにAzure OpenAIを利用することもできます。Azureデプロイメント名が使用しているモデルと異なる場合は、OPENAI_AZURE_DEPLOYMENT引数を含めることを忘れないでください。

export OPENAI_API_KEY="your-api-key"
export OPENAI_BASE_URL="https://<your-endpoint>.openai.azure.com/"
export OPENAI_API_TYPE="AZURE"
export OPENAI_AZURE_DEPLOYMENT="<your-deployment-name>"

Windows

$env:OPENAI_API_KEY = 'your-api-key'

3. Hello Worldを実行

gptscript https://get.gptscript.ai/echo.gpt --input 'Hello, World!'
OUTPUT:

Hello, World!

デフォルトで使用されるモデルはgpt-4-turbo-previewであり、OpenAIアカウントでそのモデルへのアクセス権を持っている必要があります。

Azure OpenAIを使用する場合は、--default-model引数でサポートされているバージョンのモデルを設定することを確認してください。

4. 追加クレジット: 例とデバッグUIの実行

例をクローンしてデバッグUIを実行します

git clone https://github.com/gptscript-ai/gptscript
cd gptscript/examples

# Run the debugging UI
gptscript --server

仕組み

GPTScriptはツールで構成されています。 各ツールは、関数のような一連のアクションを実行します。ツールは、関数呼び出しのように他のツールを呼び出すことができます。関数に似ていますが、ツールは主に自然言語のプロンプトで実装されます。ツールの相互作用はAIモデルによって決定されます、モデルはツールを呼び出す必要があるかどうか、何を引数として渡すかを決定します。ツールは自然言語のプロンプトで実装されることが意図されていますが、コマンドやHTTP呼び出しで実装することもできます。

以下は、---で区切られた2つのツール定義です。最初のツールは名前や説明を必要としませんが、その後のすべてのツールでは名前と説明が必要です。最初のツールにはtools: bobというパラメータがあり、必要に応じてbobという名前のツールを呼び出すことができます。

tools: bob

Ask Bob how he is doing and let me know exactly what he said.

---
name: bob
description: I'm Bob, a friendly guy.
args: question: The question to ask Bob.

When asked how I am doing, respond with "Thanks for asking \"${question}\", I'm doing great fellow friendly AI tool!"

上記の内容をbob.gptというファイル名で保存し、次のコマンドを実行します:

$ gptscript bob.gpt
OUTPUT:

Bob said, "Thanks for asking 'How are you doing?', I'm doing great fellow friendly AI tool!"

ツールは、自然言語のプロンプトではなくプログラムを呼び出すことによって実装することができます。以下の例は、前の例と同じですが、Bobをpythonを使って実装しています。

Tools: bob

Ask Bob how he is doing and let me know exactly what he said.

---
Name: bob
Description: I'm Bob, a friendly guy.
Args: question: The question to ask Bob.

#!python3

import os

print(f"Thanks for asking {os.environ['question']}, I'm doing great fellow friendly AI tool!")

これらの基本的な構成要素を使って、AIがAI、ローカルシステム、データ、または外部サービスと対話する複雑なスクリプトを作成できます。

GPTファイルリファレンス

拡張子

GPTScriptファイルは、慣例により.gpt拡張子を使用します。

ファイル構造

GPTScriptファイルには、1つ以上のツールがファイル内にあります。各ツールは、行単位で3つのダッシュ---によって区切られます。

Name: tool1
Description: This is tool1

Do sample tool stuff.

---
Name: tool2
Description: This is tool2

Do more sample tool stuff.

ツール定義

ツールは、ツールの名前、説明、引数、利用可能なツール、および追加のパラメータを定義する前文で始まります。前文に続いて、ツールの本体があり、ツールの指示が含まれます。前文のコメントは#で始まる行であり、パーサーによって無視されます。コメントは通常、説明、引数の説明、または指示の中でテキストがより有用であるため、推奨されません。

Name: tool-name
# This is a comment in the preamble.
Description: Tool description
# This tool can invoke tool1 or tool2 if needed
Tools: tool1, tool2
Args: arg1: The description of arg1

Tool instructions go here.

ツールパラメータ

ツールパラメータは、指示のテキストの前に定義されるキーと値のペアです。key: valueの形式で指定されます。パーサーは、次のキーを認識します(大文字小文字は区別されず、スペースは無視されます):

キー 説明
Name ツールの名前。
Model Name 使用するOpenAIモデル。デフォルトでは"gpt-4-turbo-preview"を使用します。
Description ツールの説明。これは、ツールの目的を適切に説明することが重要です。LLMによって使用されます。
Internal Prompt これをfalseに設定すると、このツールの組み込みシステムプロンプトが無効になります。
Tools このツールによって呼び出されるツールのコンマ区切りリスト。
Args ツールの引数。各引数はarg-name: descriptionの形式で定義されます。
Max Tokens LLMによって生成されるトークンの最大数を制限したい場合は、数値を設定します。
JSON Response これをtrueに設定すると、LLMがJSON形式で応答します。trueに設定する場合は、ツールに指示を含める必要があります。
Temperature 創造性を高めるためにより高い数値に設定された浮動小数点数を表す温度パラメータ。デフォルトでは温度は0です。

ツール本体

ツール本体には、ツールの指示が含まれています。これは自然言語のプロンプトまたは実行するコマンドである可能性があります。コマンドは#!で始まり、インタープリタ(例:#!/bin/bash, #!python3)に続きます。引数は指示の中で${arg1}の形式で参照できます。

name: echo-ai
description: 入力をエコーするツール
args: input: 入力

Just return only "${input}"

---
name: echo-command
description: 入力をエコーするツール
args: input: 入力

#!/bin/bash

echo "${input}"

組み込みツール

基本的なことを行うためのいくつかの組み込みツールがあります。ファイルの読み書き、HTTPコンテンツのダウンロード、コマンドの実行などができます。
gptscript --list-toolsを実行して、すべての組み込みツールをリストアップします。

より多くの例については、examplesディレクトリをチェックしてください。

コミュニティ

Discordで参加しましょう:

ライセンス

Copyright (c) 2024 Acorn Labs, Inc.

Apache License, Version 2.0("License")の下でライセンスされています;
このファイルをLicenseに従って以外で使用することはできません。
Licenseは以下から入手できます

http://www.apache.org/licenses/LICENSE-2.0

適用される法律または書面による合意が必要な場合を除き、ライセンスの下で配布されるソフトウェアは、いかなる種類の保証も条件もなしに"AS IS"ベースで配布されます。
ライセンスの下での権利と制限に関する規定を参照してください。

5. まとめ

GPTScriptを使ってプロンプトのチャットウィンドウからおさらばしましょう

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?