
Vertex API 経由で ChatGPT API に質問して最新の答えをシュッとゲットする。
ChatGPT 便利すぎてもう手放せないですよね~
Web 検索を含めた会話なんてもうなくては生きていけない、、、
No ChatGPT No Life.
しかしまぁ、WEB UI の ChatGPT だと Web 検索機能が Plugin で提供されてるのでまぁいいのですが、ChatGPT API 使うと最新の情報を取ってこれないんですよねぇ。
ってことはまぁいわゆる Grounding ? (他で情報を取ってきてそれを基に回答させる) 的にすればいいのかしら?
ということで最近 Vertex AI が GA したっぽだしこいつ経由で ChatGPT に質問投げたら行けんじゃね?( ゚д゚)
ということでシュッとやってみた。
という話。
Vertex !!
何気に API 公開されたころにシュッと触っているのでよかったらこちらもどうぞ
はい。
まぁ、Vertex は Google さんが出してるやつですね。はい。
ChatGPT ライクなことができますです。はい。
ただ現状は英語しか対応してないみたいだけどね!!!( ゚д゚)
はい。
しかし、こいつは ChatGPT と違って最新の情報を持っているのでござる。(*´ω`*)
偉い。
ので、
質問を考える
投げる
Vertex AI が情報を取ってくる
取ってきた情報を ChatGPT のプロンプトに含めて投げる
いい感じの結果になる
という想定でやっていきますわよ~~~
いざ、実装
特に大したことはやらないっす
Google Colaboratory で試してるよん☆
from google.colab import auth
auth.authenticate_user()
!git clone https://github.com/GoogleCloudPlatform/generative-ai.git
!pip install google-cloud-aiplatform --upgrade
!pip install openai
PROJECT_ID = "YOUR_GCP_PROJECT_ID"
LOCATION = "us-central1"
import vertexai
vertexai.init(project=PROJECT_ID, location=LOCATION)
from vertexai.preview.language_models import ChatModel, InputOutputTextPair
import openai
openai.api_key = "YOUR_OPEN_AI_API_KEY"
Vertex ちゃんを呼び出すところ
def talk_vertex(question) -> None:
chat_model = ChatModel.from_pretrained("chat-bison@001")
chat = chat_model.start_chat(
context="You are a very good researcher. Your mission is to provide accurate information that is relevant to the given question.",
)
response = chat.send_message(question)
return response.text
ChatGPT ちゃんに渡す Messages
messages=[
{"role": "system", "content": "You are a very knowledgeable assistant. Please respond to the relevant information you have accepted as a question, bracketed by ``` as factual."}
]
ChatGPT ちゃんに話しかける
def chat_gpt_through_vertex(messages, question):
relevant_information = talk_vertex(question)
print(relevant_information)
user_message = {"role": "user", "content": f"{question}\nRELEVANT INFORMATION\n```{relevant_information}```"}
messages.append(user_message)
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=messages
)
print(response['choices'][0]['message']['content'])
assistant_message = {"role": "assistant", "content": response['choices'][0]['message']['content']}
messages.append(assistant_message)
初期状態
print(messages)
[{
'role': 'system',
'content':
'You are a very knowledgeable assistant. Please respond to the relevant
information you have accepted as a question, bracketed by ``` as factual.'
}]
いざ検証
今の日本の首相を聞いてみる
chat_gpt_through_vertex(messages, "Who will be the Prime Minister of Japan in 2023?")
[{
'role': 'system',
'content': 'You are a very knowledgeable assistant.
Please respond to the relevant information you have accepted as a question,
bracketed by ``` as factual.'},
{
'role': 'user',
'content': 'Who will be the Prime Minister of Japan in 2023?\n
RELEVANT INFORMATION\n
```As of February 2023, it is too early to say who will be the Prime Minister of Japan
in 2023. The current Prime Minister,
Fumio Kishida, took office in October 2021.
He is a member of the Liberal Democratic Party (LDP)
and is the 100th Prime Minister of Japan.
\r\n\r\nThe LDP is the largest political party in Japan and has been in
power for most of the time since World War II.
The party is known for its conservative policies
and its close ties to the business community.\r\n\r\nThe main```'},
{
'role': 'assistant',
'content': 'As of February 2023, it is too early to say
who will be the Prime Minister of Japan in 2023.
The current Prime Minister is Fumio Kishida, who took office in October 2021.'
}]
うむ。しっかりと岸田首相と答えておる。
各国の AI 規制どうよって聞いてみた
chat_gpt_through_vertex(messages,"So what is the current attitude of countries around the world toward AI regulation?")
長ったらしいので最終的な回答を DeepL 先生に翻訳したやつだけのせるぞい☆
AI規制に対する世界各国の態度はまちまちです。
中国や米国のように、AI規制に積極的に取り組んでいる国もあれば、慎重な姿勢で臨んでいる国もある。
中国はAI規制に最も積極的な国の一つであり、米国もAI規制に踏み切っています。
しかし、他の多くの国々は、AI規制へのアプローチを発展させる段階にある。
したら日本はどうよ?って聞いてみた
chat_gpt_through_vertex(messages,"What is Japan's current attitude toward AI regulation?")
日本はAI規制に対して慎重なアプローチをとっており、
政府はAIの利点と潜在的なリスクのバランスを取る包括的な枠組みの開発に取り組んでいます。
2019年、日本政府はAIの開発・利用に関するガイドラインを発表し、透明性、説明責任、
安全性の重要性を強調しました。また、政府は、AIの倫理的な開発・利用のための基準の策定や、
同分野の研究開発の推進に取り組んでいます。
したがって、日本政府は、AIの倫理的な利用を確保しつつ、
その開発を促進するための規制の枠組みを積極的に設計している。
うーん?最新かどうかわからんね?(゜-゜)
水星の魔女とか聞いてみる?
chat_gpt_through_vertex(messages, "Tell us about the anime Mobile Suit Gundam THE WITCH FROM MERCURY, which began airing in 2022.")
そんなんないぞ!!って言ってる( ゚д゚)
シリーズの舞台は0079年、地球連邦とジオン公国軍の一年戦争中です。
の少年アムロ・レイを主人公とした物語です。
アニメ「機動戦士ガンダム THE WITCH FROM MERCURY」について、ご提供いただいた情報は誤りです。
2022年に放送が開始された、そのようなアニメは存在しません。
2022年に放送が開始されたガンダムシリーズの最新作は、
初代『機動戦士ガンダム』シリーズのその後を描いた『機動戦士ガンダム ハサウェイの閃』です。
監督は村瀬修功、制作はサンライズ、アニメーション制作はサンライズと白組が担当しています。
日本では2021年6月11日に初公開された
ちなみに Vertex の回答時点でおかしいからまぁしょうがないと言えばしょうがないのかもしれぬ。
機動戦士ガンダム THE WITCH FROM MERCURYは、
サンライズが制作した日本のテレビアニメシリーズである。
ガンダムシリーズの17作目であり、サンライズビヨンドが初めて制作した作品である。
監督は伊藤嘉之、脚本は小林靖子、キャラクターデザインは田村淳が担当している。
2022年10月4日にMBSとTBSで初放送された。
アニメとかは詳しくないのかなぁ( ・ω・)
ということでビルボードの曲でも聞いてみるか
chat_gpt_through_vertex(messages, "What are the Billboard Top Ten songs for June 2023?")
1. As It Was - Harry Styles
2. Heat Waves - Glass Animals
3. Stay - The Kid Laroi and Justin Bieber
4. Industry Baby - Lil Nas X and Jack Harlow
5. Enemy - Imagine Dragons and JID
6. Shivers - Ed Sheeran
7. Bad Habits - Ed Sheeran
8. MONTERO (Call Me By Your Name) - Lil Nas X
9. Industry Baby - Lil Nas X and Jack Harlow
10. Stay - The Kid Laroi and Justin Bieber.
うーん。全然違うんだなぁ。( ・ω・)
でも Vertex さんの時点で違うからしょうがないんだなぁ。
まぁとりあえず満足したからいっか。
この組み合わせをやる場合結構検証が大変だからサービスに組み込むのはやめた方がよさそうだなぁという感想。
というわけでシュッとやったのでおしまい。