こんにちは、DXCEL WAVEの運営者(@dxcelwave)です!
- Pythonで翻訳機能を実装したい
- ChatGPTを用いて多言語に対応した翻訳機能を実装したい
【OpenAI】ChatGPTとは?
ChatGPTとは、OpenAIが開発した対話型チャットボットのモデルです。ChatGPTの名前は、GPT-3という第3世代の生成言語モデルに由来しています。
ChatGPTのモデルには、人工知能(AI)が搭載されており、人間の発話に対して自然なやり取りを可能にしています。また、英語をはじめ、中国語、日本語、フランス語など複数言語を認識し、人間らしく応答できるのも特徴的です。
さらに、ChatGPTではチャットの他に、画像生成など近年多様な機能がリリースされてます。以下、ChatGPTで代表するGPTモデルおよびOpenAIが提供するAPI機能一覧を示します。
- チャット機能
- テキストから画像を生成
- オーディオを文字起こし
- Python、SQL、JavaScript等のコードを理解
- 問題あるネガティブ発言検出
- テキスト文章のベクトル変換
【参考】OpenAI社のAPI利用方法
本記事ではChatGPTを用いたPythonプログラミングについて解説します。その際、Open AIが提供するAPI情報が必要になります。「ChatGPTの概要」および「API情報の取得手順」については、こちらの記事で詳しく解説しています。
【参考】ChatGPTを詳しく学びたい方向けの学習講座
ChatGPTを詳しく学びたい方向けに安価で学べるオンライン講座も併せてご紹介します。
【事前準備】Pythonライブラリのインストール
今回言及する翻訳機能実装に際して、OpenAI提供のChatGPT APIをPython環境で利用できるライブラリが必要になります。
コマンドプロンプト(WIndows)またはターミナル(Mac)を用いてインストールしましょう。
pip install openai
【Python実践】ChatGPTで多言語翻訳機能を実装
それでは実際にPythonコードを記述し、ChatGPTにテキスト内容を渡し、指定の言語に翻訳する機能を実装していきましょう。
PythonライブラリとAPI情報の読込
はじめに、Pythonプログラムの先頭にライブラリとAPI認証情報を記述します。
前述で取得したAPIのシークレットキー
を入力しましょう。
from openai import OpenAI
API_Key = "<APIシークレットキーをここに入力>"
ChatGPT APIを用いた言語翻訳関数の作成
続いて、翻訳するためのTranslate_ChatGPT
関数を作成します。
第一引数に翻訳前の言語LangFrom
、第二引数に翻訳したい言語LangTo
、第三引数に翻訳したいテキストtext
を指定します。
# =========================================================
# 翻訳関数の作成
### 引数
### - LangFrom:翻訳前の言語
### - LangTo:翻訳語の言語
### - text:翻訳したいテキスト
# =========================================================
# 翻訳関数
def Translate_ChatGPT(LangFrom, LangTo, text):
# チャットクライアント
client = OpenAI(api_key=API_Key)
# ユーザーの質問に対して回答生成
completion = client.chat.completions.create(
# モデルを選択
model = "gpt-3.5-turbo",
# メッセージ
messages = [
{"role": "system", "content": f'You are a helpful assistant that translates {LangFrom} to {LangTo}.'},
{"role": "user", "content": f'Translate the following {LangFrom} text to {LangTo} :「{text}」. And Output only translated text'}
] ,
max_tokens = 1024, # 生成する文章の最大単語数
n = 1, # いくつの返答を生成するか
stop = None, # 指定した単語が出現した場合、文章生成を打ち切る
temperature = 0, # 出力する単語のランダム性(0から2の範囲) 0であれば毎回返答内容固定
)
# 応答
response = completion.choices[0].message.content
# 応答内容出力
return response
ChatGPT言語翻訳関数の利用
実際に前述で作成した言語翻訳関数を利用してみましょう。以下に様々な言語翻訳した例を記述します。
英語→日本語
英文を日本語翻訳するには、次のようなコードが有効です。
コード
# 翻訳設定情報
LangFrom = "English" # 翻訳前
LangTo = "Japanese" # 翻訳語
# 文章
text = "One of my favorite programming language is Python"
# 関数実行
Translate_ChatGPT(LangFrom, LangTo, text)
出力イメージ
# 私のお気に入りのプログラミング言語の1つはPythonです。
日本語→英語
日本語文を英語翻訳するには、次のようなコードが有効です。
コード
# 翻訳設定情報
LangFrom = "Japanese" # 翻訳前
LangTo = "English" # 翻訳語
# 文章
text = "好きな食べ物は、カレーライスです。"
# 関数実行
Translate_ChatGPT(LangFrom, LangTo, text)
出力イメージ
# My favorite food is curry rice.
日本語→フランス語
日本語文をフランス語翻訳するには、次のようなコードが有効です。
コード
# 翻訳設定情報
LangFrom = "Japanese" # 翻訳前
LangTo = "French" # 翻訳語
# 文章
text = "昨日は天気が雨だったため、自宅でNetflixを見ていました。"
# 関数実行
Translate_ChatGPT(LangFrom, LangTo, text)
出力イメージ
# Hier, il pleuvait donc j\'ai regardé Netflix chez moi.
【参考】AI・機械学習における配信情報まとめ
当サイトではAI・機械学習における「基礎」から「最新のプログラミング手法」に至るまで幅広く解説しております。また「おすすめの勉強方法」をはじめ、副業・転職・フリーランスとして始める「AI・機械学習案件の探し方」についても詳しく言及しています。
【仕事探し】副業・転職・フリーランス
【教育】おすすめ勉強法
【参考】記事一覧
最後に
お問い合わせフォーム
上記課題に向けてご気軽にご相談下さい。
お問い合わせはこちら