テンプレートを用意して使うことで、ある程度LLMからの回答をこちらの目的に沿ったものにできそうです。
前回まで
LangChain入門ガイド – pythonでChatGPTのAPIを呼んでみよう
概要
LangChainのPromptTemplateを使用することで、言語生成タスクを高度にカスタマイズし、効率的に実行できます。このテンプレート機能を利用することにより、一貫性のあるプロンプトを簡単に作成でき、これが結果の品質と一貫性の向上につながります。さらに、PromptTemplateを使うことでユーザーが意図した情報を正確に取り出しやすくなり、誤解を避けつつ、生産性を向上させることが可能です。
PromptTemplateを使ってみよう
今回は、pythonファイルに実装しています。テンプレートとしてはシンプルに「次の地方の名産品を教えてください {city}」といった感じで、入力に対して地方の名産を回答するものにしてみます。コードはこんな感じになります。入力としては「富山」を入れてみましょう。
from langchain.prompts import PromptTemplate
from langchain.llms import OpenAI
prompt = PromptTemplate.from_template("次の地方の名産品を教えてください {city}")
prompt_text = prompt.format(city="富山")
print(prompt_text)
llm = OpenAI(temperature=0.5)
print(llm(prompt_text))
これを実行すると、次のような回答が返ってきました。
富山県の名産品として、「富山牛」「滑川米」「黒松餅」「滑川豆腐」「富山大根」などがあります。
めっちゃ大根推しだし微妙にあってそうであってない気もしますが、これはモデルの問題ですかね。
モデルを変えてもう一回
試しに、他のモデルgpt3.5-turboでもやってみます。ちょっとだけソースを変更して、
# ここから上はさっきと同じ。
llm = OpenAI(temperature=0.5, model_name='gpt-3.5-turbo') # <= ココのmodel変更
print(llm(prompt_text))
で実行すると、
1. 黒部ダムカレー
2. ますの寿司
3. ぶりの照り焼き
4. 富山ブラックラーメン
5. 白えび
6. トマト
7. シロエビ天ぷら
8. 富山県産コシヒカリ
9. 雪室熟成肉
10. 富山湾のカニ
お〜、さっきよりそれっぽく出てきましたね。