Tkinter & OpenAI
這邊要以 ChapGPT 作為翻譯引擎,製作一個翻譯介面。
系統需求
- 須先取得 openai api key
- 安裝
OpenAI
框架
cmd
pip install openai
創建 main.py
主要檔案並引入 tkinter
。
py
# main.py
import tkinter as tk
from tkinter import ttk
OpenAI API基本設定
建立 api_key.py
檔案,主要是要與 openai 連線設定,這裡除了api key以外,還須要注意所選擇的model,建議參考官方。
py
# api_key.py
import openai
openai.api_key="你的Open API Key"
# 這裡預設2個參數,text 是 input 內容,lang 是翻譯的語言
def trans_engine(text,lang):
rep=openai.Completion.create(
# 選擇模組,這裡選擇是GPT-3.5
model="text-davinci-003",
# 與AI模組對話
prompt=f"""幫我翻譯{lang}:{text}""",
# 模組最大Tokens是4097
max_tokens=1024,
# 這裡代表AI回覆的確定性,也就是通用型回覆,在翻譯功能上已經夠用。
temperature=0.6
)
引入主檔案
api key設定好之後,就要引入主要檔案內。
py
# main.py
from api_key import trans_engine
win=tk.Tk()
...
# 設定視窗尺寸
win.title('ChatGPT 翻譯')
win.geometry('600x300')
win.resizable(width=False, height=False)
...
建立輸入框
版面配置。
py
# main.py
# 設定標籤與輸入欄位
input_row=ttk.Frame(win)
lbl_text=ttk.Label(input_row,text='輸入文字')
lbl_text.pack(side="left")
input_text=tk.Text(input_row,height=5)
input_text.pack(side='left')
...
建立語言選擇
版面配置,這裡採用 combobox
方式建立下拉選單。
py
# main.py
# 設定語言清單
...
options=['繁體中文','英文','日文','韓文']
# 設定語言的下拉選單
lang_row=ttk.Frame(win)
lbl_lang=ttk.Label(lang_row,text="選擇語言")
lbl_lang.pac(side='left')
lang_option=ttk.Combobox(lang_row,values=options)
# 預設繁體中文
lang_option.current(0)
lang_option.pack(sidel='left')
...
建立函式
py
# main.py
...
def trans_input():
# 取用輸入對話
result=trans_engine(input_text.get(1.0,'end'),lang_option.get())
# 先刪除要顯示的文字區塊內容
res_text.delete(0.0,'end')
# 放到要顯示的文字區塊內
res_text.insert(0.0,result)
建立按鈕啟動翻譯
py
# main.py
...
btn_trans=ttk.Button(lang_row, text='翻譯', width=20, command=trans_input)
bton_trans.pack(side='left', padx=10)
建立翻譯顯示的文字區塊
py
# main.py
...
res_row=ttk.Frame(win)
lbl_res=ttk.Label(res_row, text='翻譯結果')
lbl_res.pack(side='left')
res_txt=tk.Text(res_row, height=8)
res_text.pack(side='left')
掛上三個區塊版面配置。
py
# main.py
...
input_row.pack(fill='x', padx=5, pady=5)
lang_row.pack(fill='x', padx=5, pady=5)
res_row.pack(fill='x', padx=5, pady=5)
參考
- OpenAI 官網
- https://github.com/Christopher1994-1/OpenAI_GUI
- 使用 Python 串接 OpenAI API
- Extending OpenAPI
- Python ChatGPT OpenAI API Tkinter 开发语音转文本 GUI 程序
- 用 Python Tkinter 开发基于 ChatGPT API 的语言翻译程序 Python Tutorial 教程
- Tkinter ChatGPT App - Modern Tkinter GUI Chatbot
- How To Create A ChatGPT Chatbot With Tkinter and Python
- tkinter-ai-image-generator