Proc-Macro to summon ChatGPT (English)
A macro to delegate implementation to the ChatGPT API.
This macro sends the entire file containing it to the OpenAI API, and replaces it with the result returned by the API.
Example
use take_care_of_the_rest;
take_care_of_the_rest!;
Options
You can pass several options in the form of key = value.
Additionally, although it's not strictly necessary to mention here,
you can pass string literals as well, which can be used to provide a prompt.
| key | Type | Default | Possible Values | Description |
|---|---|---|---|---|
| model | String | "gpt-4o" | "o1-preview", etc. | Specifies the GPT model to use. |
| seed | Integer | File hash | Integer value ≤ 9223372036854775807 | Provides a seed for reproducibility. Try this if the default results are unsatisfactory. |
| max_completion_tokens | Integer | None | Sets the maximum number of tokens for the response. Might help when the output is truncated (unverified). |
Example with options:
take_care_of_the_rest!;
Preparation
[!IMPORTANT] This crate requires
nightlytoolchain!
cargo addcommand also needs to benightly.
To compile, run the below command.
OPENAI_API_KEY=sk-YOUR-API-KEY RUSTFLAGS='--cfg procmacro2_semver_exempt'
OPENAI_API_KEY: api key.RUSTFLAGS=...: to enablesource_filemethod of Span.cargo +nightly run: the reason of specifynightlyis same as above.
These settings can also be enable by setting files.
.cargo/config.toml
[]
= ["--cfg=procmacro2_semver_exempt"]
[]
= "sk-YOUR-API-KEY"
rust-toolchain.toml
[]
= "nightly"
In this case, the options are not necessary.
ChatGPT召喚手続きマクロ (日本語)
ChatGPT APIに実装を代行してもらうマクロです。
このマクロを記述したファイル全体をOpenAI APIに投げ、返ってきた結果で置換します。
Example
use あとは任せた;
あとは任せた!;
Option
key = value 形式でいくつかのオプションを渡すことができます。また、(ここに記述する必要性はないですが)文字列リテラルも受け取れるのでここにプロンプトを記述することもできます。
| key | 型 | デフォルト | 候補 | 説明 |
|---|---|---|---|---|
| model | 文字列 | "gpt-4o" | "o1-preview" 等 | 使用するGPTのモデルを指定します。 |
| seed | 整数値 | ファイルハッシュ | 9223372036854775807 以下の整数値 | 再現性確保のために与えるシード値を与えます。デフォルトだと芳しくない結果になった時に指定してみてください。 |
| max_completion_tokens | 整数値 | 指定なし | 返答の最大トークン数を設定します。生成が中途半端になった時に使えるかも...?(未検証) |
オプションを指定した場合の例
あとは任せた!;
使用のための準備
[!IMPORTANT] 本クレートでは
nightlyツールチェイン必須です!
cargo addコマンドもまたnightlyを必要とします。
コンパイルするには以下を実行します。
OPENAI_API_KEY=sk-YOUR-API-KEY RUSTFLAGS='--cfg procmacro2_semver_exempt'
OPENAI_API_KEY: 取得してきたOpenAIのAPIキーを設定してください。RUSTFLAGS=...: Span のsource_fileメソッドを使用するために指定しています。cargo +nightly run:nightlyの指定理由は上記と同じです。
設定ファイルを通しての設定も可能です。
.cargo/config.toml
[]
= ["--cfg=procmacro2_semver_exempt"]
[]
= "sk-YOUR-API-KEY"
rust-toolchain.toml
[]
= "nightly"
この場合オプションは不要になります。