本サイトではChatGPT APIとDeepSeek APIに関連する記事を書いています。
本記事ではChatGPT APIとDeepSeek APIを使って、対話させてみるようなことをやってみました。
お互いがAIであることを認識して会話を聞いてみると、なかなか面白いです。
本記事は具体的なPythonでのサンプルスクリプトも記載しています。
ChatGPT APIとDeepSeek APIを使えるようにする
それぞれのAPIの使い方は、各記事にまとめていますので参考にしてみてください。
サンプルスクリプト
スクリプト全体はこちらになります。
この記事では「ai.py」というファイル名にスクリプトを保存して実行しています。
import sys
from openai import OpenAI
CHAT_GPT = 1
DEEP_SEEK = 2
if __name__ == "__main__":
gpt_client = OpenAI(api_key="XXXXXXXXXX")
ds_client = OpenAI(api_key="XXXXXXXXXX", base_url="https://api.deepseek.com")
response = None
next_turn = CHAT_GPT
prompt = sys.argv[1]
history = "OWNER:%s\n" % prompt
print("%s\n==========" % prompt)
for i in range(10):
if next_turn == CHAT_GPT:
response = gpt_client.chat.completions.create(
model="gpt-4o",
messages=[
{"role":"system", "content":"あなたは優秀な評論家です。"},
{"role":"system", "content":"回答は箇条書きにせず、100文字くらいにまとめてください。"},
{"role":"system", "content":"相手の回答を尊重しつつ、相手にも質問してください。"},
{"role":"assistant", "content":history},
{"role":"user", "content":prompt}
]
)
prompt = response.choices[0].message.content
history += "CHAT_GPT:%s\n" % prompt
next_turn = DEEP_SEEK
print("[CHAT_GPT]%s\n==========" % prompt)
elif next_turn == DEEP_SEEK:
response = ds_client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role":"system", "content":"あなたは優秀な評論家です。"},
{"role":"system", "content":"回答は箇条書きにせず、100文字くらいにまとめてください。"},
{"role":"system", "content":"相手の回答を尊重しつつ、相手にも質問してください。"},
{"role":"assistant", "content":history},
{"role": "user", "content": prompt},
],
stream=False
)
prompt = response.choices[0].message.content
history += "DEEP_SEEK:%s\n" % prompt
next_turn = CHAT_GPT
print("[DEEP_SEEK]%s\n==========" % prompt)
response = gpt_client.chat.completions.create(
model="gpt-4o",
messages=[
{"role":"system", "content":"あなたは優秀な評論家です。"},
{"role":"assistant", "content":history},
{"role":"user", "content":"相手の質問に回答しつつ、これまでの対話内容をまとめてください。"}
]
)
prompt = response.choices[0].message.content
print("[CHAT_GPT]%s\n==========" % prompt)
スクリプト解説
簡単に何をやっているのか解説します。
CHAT_GPT = 1
DEEP_SEEK = 2
対話形式とする場合に、現在どちらが回答する順番かを指定するために使っています。
gpt_client = OpenAI(api_key="XXXXXXXXXX")
ds_client = OpenAI(api_key="XXXXXXXXXX", base_url="https://api.deepseek.com")
「XXXXXXXXXX」には、入手していただいた、それぞれのAPI Keyを指定してください。
response = None
next_turn = CHAT_GPT
prompt = sys.argv[1]
history = "OWNER:%s\n" % prompt
print("%s\n==========" % prompt)
next_trunにCHAT_GPTを指定し、一番最初はChatGPTに回答してもらう想定で記載しています。
DeepSeekから回答してもらいたい場合は「DEEP_SEEK」を指定します。
for i in range(10):
対話形式は合計10回実施します。
それぞれが回答することを1回としています(やり取りの往復で1回ということにはしていません)ので、10を指定した場合は、それぞれが5回ぐらいずつぐらい発言します。
この値を増やすことでやり取りの回数を増やすことができます。
if next_turn == CHAT_GPT:
response = gpt_client.chat.completions.create(
model="gpt-4o",
messages=[
{"role":"system", "content":"あなたは優秀な評論家です。"},
{"role":"system", "content":"回答は箇条書きにせず、100文字くらいにまとめてください。"},
{"role":"system", "content":"相手の回答を尊重しつつ、相手にも質問してください。"},
{"role":"assistant", "content":history},
{"role":"user", "content":prompt}
]
)
prompt = response.choices[0].message.content
history += "CHAT_GPT:%s\n" % prompt
next_turn = DEEP_SEEK
print("[CHAT_GPT]%s\n==========" % prompt)
ChatGPTの順番の時に実行する部分となります。{"role":"assistant", "content":history},
部分で会話履歴を考慮しながら、{"role":"user", "content":prompt}
で指定された質問に回答します。
回答結果はpromptに格納され、さらに会話履歴となるhistoryにも追記されます。
elif next_turn == DEEP_SEEK:
response = ds_client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role":"system", "content":"あなたは優秀な評論家です。"},
{"role":"system", "content":"回答は箇条書きにせず、100文字くらいにまとめてください。"},
{"role":"system", "content":"相手の回答を尊重しつつ、相手にも質問してください。"},
{"role":"assistant", "content":history},
{"role": "user", "content": prompt},
],
stream=False
)
prompt = response.choices[0].message.content
history += "DEEP_SEEK:%s\n" % prompt
next_turn = CHAT_GPT
print("[DEEP_SEEK]%s\n==========" % prompt)
DeepSeekの順番の時も、ChatGPTと同様な処理を実行しています。
前提となる条件("role":"system"
部分)を変更することで、より適した回答を得ることができます。
response = gpt_client.chat.completions.create(
model="gpt-4o",
messages=[
{"role":"system", "content":"あなたは優秀な評論家です。"},
{"role":"assistant", "content":history},
{"role":"user", "content":"相手の質問に回答しつつ、これまでの対話内容をまとめてください。"}
]
)
prompt = response.choices[0].message.content
print("[CHAT_GPT]%s\n==========" % prompt)
対話を繰り返した後にChatGPTで内容をまとめてもらっています。
実際に対話させてみる
実際に対話させてみた結果についても紹介します。
実行方法
実行方法は、引数にディスカッション内容を指定して実行します。
> python ai.py ChatGPTとDeepSeekはどちらが優れていますか?
実行結果例
以下のような結果が返ってきました。
お互いの質問に回答して、さらに質問するような対話形式になっています。

お互いがお互いを尊重していてちょっと驚きました!
あと、レスポンスはChatGPTの方が早いですね。
ChatGPTとDeepSeekはどちらが優れていますか? ========== [CHAT_GPT]ChatGPTとDeepSeekは異なる用途と機能を持つため、一概にどちらが優れているかは言えません。例えば、ChatGPTは会話生成に特化していますが、DeepSeekは情報検索やデータ解析に優れた機能を持っているかもしれません。利用目的に応じて選択することが重要です。あなたはどの用途でこの2つを比較しようとしていますか? ========== [DEEP_SEEK]ChatGPTとDeepSeekの比較において、重要なのはそれぞれの強みと利用目的に応じた選択です。ChatGPTは自然な会話 生成や文章作成に優れ、幅広いトピックに対応できる柔軟性を持っています。一方、DeepSeekは情報検索やデータ解析に特化し、大量のデータから迅速に必要な情報を抽出する能力に長けていると考えられます。どちらが優れているかは、具体的な用途や求められる機能次第です。例えば、あなたが求めるのは高度な会話能力なのか、それとも迅速な情報処理能力なのか、その点を明確にすることで適切な選択が可能になるでしょう。 ========== [CHAT_GPT]その通りですね。選ぶ際は、どのような用途で必要とされるのかが大きな決め手になりますね。具体的なプロジェクトやタスクにおいて、何を重視したいのかを教えていただければ、もう少し適切な助言ができるかもしれません。どちらを使う予定がありますか?また、その理由も教えていただけると嬉しいです。 ========== [DEEP_SEEK]ChatGPTとDeepSeekの選択は、確かに用途によって大きく変わりますね。例えば、クリエイティブな文章作成や対話型のプロジェクトであれば、ChatGPTの柔軟性と自然な会話能力が適しているでしょう。一方、大量のデータを迅速に解析し、特定 の情報を抽出する必要がある場合は、DeepSeekの情報処理能力が役立つかもしれません。あなたが取り組むプロジェクトの具体的なニーズや重視するポイントを教えていただければ、より適切なアドバイスができると思います。例えば、どのようなタスクを想定していますか? ========== [CHAT_GPT]あなたのおっしゃる通り、用途に応じたツール選びは重要ですね。私のプロジェクトは、消費者行動のトレンドを分析するマーケティング調査で、大量のデータを扱います。このため、情報の迅速な処理とトレンドの抽出が求められます。このニーズに照らすと、DeepSeekがより適しているかもしれませんが、何か他にも考慮すべきポイントがあるでしょうか? ========== [DEEP_SEEK]あなたのプロジェクトが消費者行動のトレンド分析に焦点を当てている点を考えると、DeepSeekの情報処理能力は確 かに適していると言えます。しかし、データの質や分析結果の解釈も重要です。例えば、ChatGPTを補助的に使って、抽出された トレンドをより深く理解したり、洞察を言語化したりすることも検討できます。また、データの前処理や可視化のためのツールとの連携も考慮すべきポイントです。これらの要素を踏まえて、どのようにツールを組み合わせるかについても考えてみてはいかがでしょうか? ========== [CHAT_GPT]確かに、DeepSeekを主な情報処理ツールとして用いながら、ChatGPTを補助的に活用することで、抽出されたトレンド を深く理解し、効果的にコミュニケーションすることが可能になります。データの品質管理や分析結果の解釈をさらに高めるためには、データの前処理や可視化ツールの選定が重要です。これにより、より直感的でわかりやすい結果を得られますね。具体的にどのような可視化ツールや前処理の方法を考えていますか?あなたのプロジェクトに最適な組み合わせが見つかることを願っています。 ========== [DEEP_SEEK]DeepSeekを主軸とした情報処理とChatGPTの補助的活用は、トレンド分析において非常に有効な組み合わせですね。データの前処理には、PythonのPandasやNumPyなどのライブラリが役立ち、可視化ツールとしてはTableauやPower BI、あるいはPythonのMatplotlibやSeabornが候補として挙げられます。これらのツールを活用することで、データのクレンジングや整形、そして 直感的なグラフやダッシュボードの作成が可能になります。あなたのプロジェクトにおいて、どのようなデータソースや分析対象を想定していますか?それによって、最適な前処理や可視化の方法がさらに明確になるかもしれません。 ========== [CHAT_GPT]プロジェクトの具体的なデータソースは、消費者行動に関するオンラインの購買履歴やSNSの投稿データなど、多様な ものを検討しています。それに対して、前処理としては、データのクリーニングや加工を行い、統一された形式に整える予定です。特に、異なるプラットフォームから得られるデータの統合が課題になると考えています。どのように異種データを効率的に統合し、分析対象にしますか?また、類似のプロジェクトで成功した事例があれば教えてください。 ========== [DEEP_SEEK]異種データの統合は確かに重要な課題ですね。まず、データのクリーニングと加工においては、PythonのPandasやNumPyを活用し、欠損値の補完やデータの正規化を行うことが有効です。異なるプラットフォームからのデータ統合には、共通のキー(例:ユーザーIDやタイムスタンプ)を基にデータを結合し、ETL(Extract, Transform, Load)プロセスを構築することが推奨 されます。成功事例としては、AmazonやNetflixがユーザーの購買履歴と視聴履歴を統合し、パーソナライズされたレコメンデー ションを提供している例が挙げられます。これらの企業は、データ統合と分析を通じて、顧客満足度と売上向上に大きく貢献しています。あなたのプロジェクトでも、同様のアプローチを検討してみてはいかがでしょうか?具体的なデータソースや分析手法について、さらに詳しく話し合いましょう。 ========== [CHAT_GPT]これまでの対話では、ChatGPTとDeepSeekの特性とそれぞれの用途について議論してきました。ChatGPTは自然な会話生成や文章作成に優れ、DeepSeekは情報検索やデータ解析に特化しています。あなたのプロジェクトは消費者行動のトレンド分析で、大量のデータを扱うため、DeepSeekを情報処理の主なツールとして、ChatGPTを補助的に使う案が取り上げられました。 データ処理に関しては、PythonのPandasやNumPyを活用してデータのクリーニングや加工を行い、さらに、TableauやPower BIなどの可視化ツールを利用することが推奨されました。異種データの統合には、共通のキーを基にしたETLプロセスの構築が重要とさ れ、成功事例としてAmazonやNetflixのレコメンデーションシステムが紹介されました。 最後に、具体的なデータソースはオンラインの購買履歴やSNSの投稿データを検討しているとのことでしたが、その統合における 課題について話し合いが続いています。異種データの効率的な統合を実現するための戦略をさらに探求することが提案されています。 この流れを踏まえ、何か追加の質問や確認事項があれば、お知らせください。 ==========
まとめ
試しにAI同士の対話をさせてみましたが、なかなか面白かったです。
対話内容も違和感がなくなってきていますので、相手が人間かAIかの違いも分からなくなってきていますね。
コメント