GPT-3.5 Turbo ของทาง OpenAI นั้นถือได้ว่าเป็นหนึ่งในโมเดลการประมวลผลภาษาธรรมชาติ (natural language processing models) ที่ทรงพลังที่สุดในปัจจุบันเลยก็ว่าได้ ไม่ว่าจะด้วยความสามารถในการสร้างข้อความที่ซับซ้อนและมีความสอดคล้องกัน ทำให้มันกลายมาเป็นตัวเลือกที่เหมาะสมเป็นอย่างมากในงานด้านภาษาต่างๆ แต่อย่างไรก็ตาม GPT-3.5 อาจจะถือว่าเป็นเรื่องที่ท้าทายสำหรับเหล่านักพัฒนา โดยเฉพาะอย่างยิ่งเมื่อต้องการสร้าง user interfaces ในโมเดลของตนเอง แต่ด้วยการมาถึงของ Gradio ที่เป็น Python ไลบรารี มันได้เข้ามาช่วยสร้าง UI component ต่างๆ ที่สามารถปรับแต่งได้อย่างง่ายดายสำหรับโมเดลแมชชีนเลิร์นนิง
ในบทความนี้ เราจะมาดูวิธีสร้าง Joke chatbot แบบง่ายๆ ที่ขับเคลื่อนด้วย AI โดยใช้ Gradio และ GPT-3.5 ของ OpenAI เราจะเริ่มต้นด้วยการติดตั้งไลบรารีที่จำเป็นและตั้งค่าคีย์ OpenAI API ของเราขึ้นมา
ในการติดตั้ง Gradio และ OpenAI ให้รันคำสั่งต่อไปนี้:
!pip install -q gradio
!pip install -q openai
จากนั้นนำเข้า Gradio และ OpenAI โดยใช้โค้ดต่อไปนี้:
import gradio
import openai
ก่อนที่เราจะใช้ GPT-3.5 ได้ เราต้องสร้างคีย์ OpenAI API คุณสามารถทำได้โดยไปที่หน้า OpenAI API Key และทำตามคำแนะนำที่นั่น เมื่อคุณมีคีย์ API แล้ว ให้ตั้งค่าโดยใช้โค้ดต่อไปนี้:
openai.api_key = "sk-..."
แทนที่ sk-…
ด้วยคีย์ API ของคุณ
ตอนนี้เราพร้อมที่จะสร้างแชทบอทของเราแล้ว เราจะกำหนดฟังก์ชันที่รับอินพุตของผู้ใช้และส่งคืนการตอบกลับจาก GPT-3.5 โดยใช้วิธี openai.ChatCompletion.create()
และนี่คือตัวอย่าง joke chatbot ที่ถูกเราสร้างขึ้นมาอย่างง่ายดาย:
# set the context
messages = [{"role": "system", "content": "You are a comedian, you can tell only jokes. If asked about others please say 'I can say only jokes'"}]
# get the user inputs
def JokeChatGPT(ask_joke):
messages.append({"role": "user", "content": ask_joke})
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=messages,
temperature=.1
)
JokeGPT_reply = response["choices"][0]["message"]["content"]
messages.append({"role": "assistant", "content": JokeGPT_reply})
return JokeGPT_reply
ในฟังก์ชันนี้ อันดับแรกเลยคือ เราจะต้องตั้งค่าบริบทสำหรับแชทบอทของเราโดยกำหนดรายการข้อความ จากนั้นเราจะกำหนดฟังก์ชัน JokeChatGPT()
ซึ่งรับอินพุตของผู้ใช้ (ในกรณีนี้คือเรื่องตลก) และต่อท้ายในรายการข้อความ จากนั้นเราจะใช้เมธอด openai.ChatCompletion.create()
เพื่อสร้างการตอบกลับจาก GPT-3.5 ด้วย low-temperature value เพื่อให้แน่ใจได้ว่าการตอบกลับนั้นมีความสอดคล้องกันมากขึ้นและแรมด้อมน้อยลง สุดท้ายนี้ เราจะเพิ่มการตอบกลับลงในรายการข้อความและส่งคืนให้กับผู้ใช้
ตอนนี้เรามีฟังก์ชั่นแชทบอทแล้ว เราสามารถสร้างอินเทอร์เฟซ Gradio ให้กับมันได้ เราจะใช้เมธอด Interface()
เพื่อกำหนดประเภทอินพุตและเอาต์พุตสำหรับแชทบอทของเรา ตลอดจนชื่อและคำอธิบาย นี่คือโค้ด:
demo = gradio.Interface(fn=JokeChatGPT, inputs="text", outputs="text", title="😀 Joke Bot", description="A simple AI-powered Jokes chatbot using Gradio and OpenAI's GPT-3.5.")
สุดท้ายนี้ เราสามารถเปิดอินเทอร์เฟซแชทบอทของเราโดยใช้เมธอด demo.launch()
demo.launch()