構造化出力例
このサンプルは、コンテンツをJSONフォーマットに変換してプログラム処理を容易にする方法を示します。
タスク
ニュース記事を構造化されたJSONフォーマットに変換し、重要な情報を抽出します。
プロンプト
ユーザーがニュース記事を提供します。記事の内容を分析し、重要な情報をJSONフォーマットで抽出してください。出力JSONは以下の形式に従う必要があります:
{
"entity": <ニュースの主体>,
"time": <ニュースの時間、YYYY-mm-dd HH:MM:SS形式、ない場合はnull>,
"summary": <ニュース内容の要約>
}
例
ユーザー入力
8月31日、ファルコン9ロケットが米東部時間午前3時43分にフロリダ州ケープカナベラルから打ち上げられ、21基のスターリンク衛星を軌道に投入しました。続いて、同日米東部時間午前4時48分に、別のファルコン9ロケットがカリフォルニア州バンデンバーグ宇宙軍基地から打ち上げられ、同じく21基のスターリンク衛星の軌道投入に成功しました。2回の打ち上げの間隔65分は、ファルコン9ロケットの最短打ち上げ間隔記録となりました。
連邦航空局は8月30日、スペースXに対する調査は継続中であるものの、ファルコン9ロケットの打ち上げ再開を許可したと発表しました。現在、8月28日のブースター着陸失敗事故の詳細については両者から公表されていません。打ち上げは再開されましたが、5日間の宇宙活動を予定していた「ポラリス・ドーン」ミッションは延期されました。スペースXはこのミッションの準備を積極的に進めており、連邦航空局の最終承認を待って速やかに打ち上げを実施する予定です。
アシスタント出力
{
"entity": "ファルコン9ロケット",
"time": "2023-08-31 03:43:00",
"summary": "8月31日、ファルコン9ロケットが2回の打ち上げに成功し、42基のスターリンク衛星を軌道に投入、最短打ち上げ間隔記録を樹立。連邦航空局は打ち上げ再開を許可したものの、予定されていたポラリス・ドーンミッションは最終承認待ちで延期。"
}
コード実装
from openai import OpenAI
client = OpenAI(
base_url="https://api.deepseek.com/",
api_key="<YOUR_API_KEY>"
)
completion = client.chat.completions.create(
model="deepseek-chat",
messages=[
{
"role": "system",
"content": "ユーザーがニュース記事を提供します。記事の内容を分析し、重要な情報をJSONフォーマットで抽出してください。出力JSONは以下の形式に従う必要があります:\n\n{\n \"entity\": <ニュースの主体>,\n \"time\": <ニュースの時間、YYYY-mm-dd HH:MM:SS形式、ない場合はnull>,\n \"summary\": <ニュース内容の要約>\n}"
},
{
"role": "user",
"content": "8月31日、ファルコン9ロケットが米東部時間午前3時43分にフロリダ州ケープカナベラルから打ち上げられ、21基のスターリンク衛星を軌道に投入しました。続いて、同日米東部時間午前4時48分に、別のファルコン9ロケットがカリフォルニア州バンデンバーグ宇宙軍基地から打ち上げられ、同じく21基のスターリンク衛星の軌道投入に成功しました。2回の打ち上げの間隔65分は、ファルコン9ロケットの最短打ち上げ間隔記録となりました。\n\n連邦航空局は8月30日、スペースXに対する調査は継続中であるものの、ファルコン9ロケットの打ち上げ再開を許可したと発表しました。現在、8月28日のブースター着陸失敗事故の詳細については両者から公表されていません。打ち上げは再開されましたが、5日間の宇宙活動を予定していた「ポラリス・ドーン」ミッションは延期されました。スペースXはこのミッションの準備を積極的に進めており、連邦航空局の最終承認を待って速やかに打ち上げを実施する予定です。"
}
]
)
print(completion.choices[0].message.content)