บทช่วยสอน OpenAI API
ฟังก์ชั่นด้วย OpenAI API
OpenAI API รองรับฟังก์ชัน รูปแบบ JSON และ API ภายนอก ในขณะที่เสนอราคาที่ต่ำกว่าและบริบทที่ยาวกว่า
การแนะนำ
OpenAI ประกาศการอัปเดตเมื่อวานนี้สำหรับ OpenAI API ซึ่งเปิดใช้งานฟังก์ชันการส่งผ่านไปยัง API
การเปลี่ยนแปลงทำให้:
- บูรณาการกับ API ได้อย่างง่ายดาย
- ลดความซับซ้อนในการใช้งานฟังก์ชันด้วย API
มาเริ่มกันเลย!
ฟังก์ชั่น
ฉันจะเริ่มต้นด้วยการแทรกไลบรารีที่จำเป็นและคีย์ OpenAI API ปกติ
!pip install openai import os import openai import json openai.api_key = os.getenv("OPENAI_API_KEY")
ต่อไปมากำหนดฟังก์ชันที่จะใช้:
def get_current_weather(location, unit="fahrenheit"): """Get the current weather in a given location""" weather_info = { "location": location, "temperature": "72", "unit": unit, "forecast": ["sunny", "windy"], } return json.dumps(weather_info)
ฟังก์ชันนี้เป็นเพียงตัวอย่าง ดังนั้นคุณสามารถสร้างฟังก์ชันใดก็ได้ ฟังก์ชันนี้อาจเป็นเช่นจุดสิ้นสุด API ภายนอก ในตัวอย่างพื้นฐานนี้ ฟังก์ชันจะส่งกลับค่าเดียวกันเสมอเพื่อความเรียบง่าย อย่างไรก็ตาม ฟังก์ชันที่ใช้ API ภายนอกจะส่งกลับการตอบสนองที่ไม่ซ้ำกันในแต่ละครั้ง
สรุปก็คือ ต่อไปเราจะใช้ OpenAI API เพื่อส่งคืนการตอบกลับในรูปแบบที่ฟังก์ชันนี้สามารถใช้ได้
มาทำการเรียก API กันเถอะ:
response = openai.ChatCompletion.create( model="gpt-3.5-turbo-0613", messages=[{"role": "user", "content": "What's the weather like in Boston?"}], functions=[ { "name": "get_current_weather", "description": "Get the current weather in a given location", "parameters": { "type": "object", "properties": { "location": { "type": "string", "description": "The city and state, e.g. San Francisco, CA", }, "unit": {"type": "string", "enum": ["celsius", "fahrenheit"]}, }, "required": ["location"], }, } ], function_call="auto", ) message = response["choices"][0]["message"] function_response = get_current_weather( location=message.get("location"), unit=message.get("unit"), )
ตอนนี้ฉันสามารถรับชื่อฟังก์ชันด้วยรหัสต่อไปนี้:
print( message["function_call"]["name"])
ฉันสามารถแยกข้อมูลฟังก์ชั่นได้:
print(function_response)
การตอบสนองของฟังก์ชันประกอบด้วยข้อมูลในรูปแบบที่ต้องการซึ่งฟังก์ชันสามารถใช้งานได้
สิ่งนี้ทำให้สามารถสร้างโฟลว์ได้ ซึ่งขั้นแรกจะดึงคำค้นหาของผู้ใช้เป็นรูปแบบที่ฟังก์ชันร้องขอ จากนั้นฟังก์ชันจะถูกดำเนินการ และสุดท้ายการเรียก OpenAI API ใหม่จะตอบสนองคำตอบในรูปแบบที่ผู้ใช้ถามโดยอิงตามการตอบสนองของฟังก์ชัน
ข้อสรุป
ในบทช่วยสอนนี้ ฉันแนะนำการใช้ฟังก์ชันใน OpenAI API
ฉันเชื่อว่าฟีเจอร์ใหม่นี้ทำให้การสร้างโซ่ง่ายขึ้น โดยที่รวมเข้าด้วยกัน:
- หน่วยความจำ
- API ภายนอก
- เชื่อมโยงการโทรซ้ำกับ OpenAI API เข้าด้วยกัน
ประกาศใหม่จาก OpenAI นี้มีประโยชน์อย่างยิ่ง
อ้างอิง
[1] OpenAI, 2023 การเรียกใช้ฟังก์ชันและการอัปเดต API อื่นๆ https://openai.com/blog/function-calling-and-other-api-updates ( ตัวอย่างที่ใช้คือตัวอย่างที่ OpenAI เตรียมไว้ให้ และผมจะค่อยๆ อัปเดตด้วยฟังก์ชันและตัวอย่างของตัวเอง