AIで文章を書く
useAIフックは、プロンプトをAIモデルに送り、その返答を返します。毎日の詩や豆知識、ウィジェットがすでに持っているデータの要約など、毎回違う内容を表示したいときに使います。
import { useAI } from "~lib/use-ai";
export const Widget = () => {
const { data } = useAI({ prompt: "Write a haiku about autumn" });
return <p className="whitespace-pre-line">{data.output}</p>;
};
useFetchと同じく、ウィジェットは返答を受け取ってから描画されるので、dataは常にそろっています。APIキーは必要ありません。
データからプロンプトを組み立てる
プロンプトはただの文字列なので、入力項目の値や、すでに取得したデータを埋め込めます。
import { useAI } from "~lib/use-ai";
import { useFetch } from "~lib/use-fetch";
type Forecast = {
readonly temperature: number;
readonly summary: string;
};
export const Widget = () => {
const { data: forecast } = useFetch<Forecast>(
"https://api.example.com/forecast",
);
const { data } = useAI({
prompt: `In one short sentence, suggest what to wear today. It will be ${forecast.temperature}°C and ${forecast.summary}.`,
});
return <p>{data.output}</p>;
};
ヒント
- ほしい形を指定しましょう。返答はプレーンテキストです。ウィジェットに収まるよう、「1文で」「箇条書きで3点」のように、長さと書き方を指定してください。
- 返答は毎回変わります。フレームの表示内容が準備されるた びにプロンプトが送り直され、モデルが新しい返答を書きます。