GPTyped へようこそ! ?タイプセーフな方法で OpenAI の GPT 言語モデルと対話できるようにする、小さいながらも強力な NPM パッケージ。 GPTyped を使用すると、Web 上で実行しているかサーバー上で実行しているかに関係なく、オブジェクトをプロンプトとして送信し、LLM AI から構造化された応答を簡単に受信できます。
TypeScript オブジェクトをプロンプトとして送信し、TypeScript オブジェクトを応答として受信します。
?インターセプターを使用して完全にカスタマイズ可能で、いつでもリクエストやレスポンスを変更できます。
? GPT と簡単に統合できるように、OpenAI クライアントがプリロードされています。
Zod を使用して、返されたオブジェクトのスキーマを検証します。
メモリやメタプロンプトなどの一般的なプロンプト パターンのサポート。
NPM または Yarn を使用して GPTyped をインストールできます。
npm install gptyped zod
または
糸 gptyped zod を追加
始める準備はできていますか? ここで完全なドキュメントをチェックしてください?
GPTyped の使用は簡単です。以下は、オブジェクトをプロンプトとして送信し、タイプ セーフなオブジェクトの応答を受信する方法の例です。
import { OpenAiClientBuilder, PrompterForObjectBuilder } from "gptyped"import { z } from "zod"// AI 応答のタイプを記述する Zod スキーマexport const TweetSchema = z.object({
ツイート: z.string().min(1)、
タグ: z.array(z.string()).min(3),})type Tweet = z.infer<typeof TweetSchema>const gpTypedOpenAiClient = new OpenAiClientBuilder("YOUR_OPEN_AI_SECRET_KEY").build()const プロンプターForObject = new PrompterForObjectBuilder( gpTypedOpenAiClient、TweetSchema、{
tweet: "トピックに関するツイート。最大 140 文字。",
タグ: "ツイートに関する 3 つのハッシュタグ。",}).build()// 入力オブジェクトを使用して OpenAI API にリクエストを送信します。応答は typesafe.const result = await PrompterForObject.send<Tweet>({
topic: "なぜ春が最高の季節ですか?",})// ツイートにアクセスします type セーフ responseconsole.log(result.tweet) // "花と自然のせいで春は最高の季節です。"console.log(result .tags) // ["#春", "#花", "#自然"]LLM の応答は決定的ではありません。これは、まったく同じプロンプトでも、AI によって異なる応答が生じる可能性があることを意味します。これを念頭に置くと、応答が有効なデータ構造であるかどうかを保証することは不可能です。 GPTyped は、Zod を使用して指定したスキーマに対して応答を検証し、有効な場合は応答を返します。応答が無効な場合、GPTyped はエラーをスローします。
通常、後続のリクエストは有効な応答を返すため、型エラーが発生した場合は必ず少なくとも 2 回リクエストを再試行することをお勧めします。 OpenAI の GPT を使用すると、AI の温度パラメータを下げて予測しやすくすることもできます。
貢献は大歓迎です!バグ修正、機能リクエスト、改善については、お気軽に問題をオープンしたり、プル リクエストを送信してください。計画されているいくつかの改善点をご覧ください。すぐにでも参加できます。
失敗したリクエストに対する自動再試行
他の一般的な LLM API のクライアント
Markdown リクエスト/レスポンスのサポート
CSVリクエスト/レスポンスのサポート
他の一般的なデータ形式のサポート
GPTyped は、MIT ライセンスに基づいてリリースされたオープンソース ソフトウェアです。ライセンス条項に従ってご自由に使用、変更、配布してください。