OpenAI函數調用教程:生成結構化輸出
使用openai而無需函數
>在本節中,我們將使用GPT-3.5-Turbo模型生成響應,而無需呼叫,以查看我們是否獲得一致的輸出。
>在安裝OpenAI Python API之前,您必須獲得一個API鍵並將其設置在本地系統上。通過Python教程中的OpenAI API遵循GPT-3.5和GPT-4,以了解如何獲取API鍵並進行設置。該教程還包括在DataCamp的DataCamp的AI啟用數據筆記本中設置環境變量的示例。以獲取進一步的幫助,請查看Datalab上的OpenAI函數撥打工作簿中的代碼。
>使用以下方式將OpenAi Python API升級到V1
之後,使用API鍵啟動OpenAI客戶端。
pip install --upgrade openai -q
>
import os from openai import OpenAI client = OpenAI( api_key=os.environ['OPENAI_API_KEY'], )
我們將編寫一個隨機的學生描述。您可以提出自己的文字,或者使用chatgpt為您生成一個。 >
>在下一部分中,我們將編寫一個提示,以從文本中提取學生信息並將輸出返回為JSON對象。我們將在學生描述中提取名稱,專業,學校,成績和俱樂部。
>student_1_description = "David Nguyen is a sophomore majoring in computer science at Stanford University. He is Asian American and has a 3.8 GPA. David is known for his programming skills and is an active member of the university's Robotics Club. He hopes to pursue a career in artificial intelligence after graduating."
>將提示添加到OpenAI API聊天完成模塊中以生成響應。
# A simple prompt to extract information from "student_description" in a JSON format. prompt1 = f''' Please extract the following information from the given text and return it as a JSON object: name major school grades club This is the body of text to extract the information from: {student_1_description} '''
>
# Generating response back from gpt-3.5-turbo openai_response = client.chat.completions.create( model = 'gpt-3.5-turbo', messages = [{'role': 'user', 'content': prompt_1}] ) openai_response.choices[0].message.content
最終結果非常完美。那麼,為什麼我們需要調用函數?
'{\n "name": "David Nguyen",\n "major": "computer science",\n "school": "Stanford University",\n "grades": "3.8 GPA",\n "club": "Robotics Club"\n}'
>讓我們嘗試相同的提示,但使用其他學生描述。
import json # Loading the response as a JSON object json_response = json.loads(openai_response.choices[0].message.content) json_response
>我們將在提示中更改學生描述文本。
{'name': 'David Nguyen', 'major': 'computer science', 'school': 'Stanford University', 'grades': '3.8 GPA', 'club': 'Robotics Club'}
,並使用第二個提示來運行聊天完成功能。
student_2_description="Ravi Patel is a sophomore majoring in computer science at the University of Michigan. He is South Asian Indian American and has a 3.7 GPA. Ravi is an active member of the university's Chess Club and the South Asian Student Association. He hopes to pursue a career in software engineering after graduating."
>
prompt2 = f''' Please extract the following information from the given text and return it as a JSON object: name major school grades club This is the body of text to extract the information from: {student_2_description} '''
為了解決此問題,我們現在將使用最近引入的功能呼叫的功能。創建一個自定義功能以在字典列表中添加必要的信息是至關重要的,以便OpenAI API了解其功能。
- >名稱:寫您最近創建的python函數名稱。
- 描述:函數的功能。 >
- 參數:在“屬性”中,我們將寫入參數,類型和描述的名稱。它將幫助Openai API確定我們正在尋找的世界。
note:確保您遵循正確的模式。通過閱讀官方文檔來了解有關函數調用的更多信息。 >
接下來,我們將使用添加到“函數”參數中的自定義函數為兩個學生描述生成響應。之後,我們將將文本響應轉換為JSON對象並打印它。pip install --upgrade openai -q
如我們所見,我們獲得了統一的輸出。我們甚至在數字而不是字符串中獲得成績。一致的輸出對於創建沒有錯誤的AI應用程序至關重要。
>import os from openai import OpenAI client = OpenAI( api_key=os.environ['OPENAI_API_KEY'], )
多個自定義功能
student_1_description = "David Nguyen is a sophomore majoring in computer science at Stanford University. He is Asian American and has a 3.8 GPA. David is known for his programming skills and is an active member of the university's Robotics Club. He hopes to pursue a career in artificial intelligence after graduating."
。 在字典的python列表中,我們將添加另一個稱為“ extract_school_info”的功能,該功能將幫助我們從文本中提取大學信息。 為了實現這一目標,您必須添加另一個具有名稱,描述和參數的函數的字典。
>我們將使用Chatgpt生成“ Stanford University”描述來測試我們的功能。
>創建學生和學校描述列表,並通過OpenAI聊天完成功能將其傳遞以生成響應。確保您提供了更新的自定義功能。
># A simple prompt to extract information from "student_description" in a JSON format. prompt1 = f''' Please extract the following information from the given text and return it as a JSON object: name major school grades club This is the body of text to extract the information from: {student_1_description} '''
> GPT-3.5-Turbo模型已自動為不同的描述類型選擇了正確的功能。我們為學生和學校提供了完美的JSON輸出。
># Generating response back from gpt-3.5-turbo openai_response = client.chat.completions.create( model = 'gpt-3.5-turbo', messages = [{'role': 'user', 'content': prompt_1}] ) openai_response.choices[0].message.content
我們甚至可以使用“ extract_school_info”函數生成休息的名稱。
'{\n "name": "David Nguyen",\n "major": "computer science",\n "school": "Stanford University",\n "grades": "3.8 GPA",\n "club": "Robotics Club"\n}'
import json # Loading the response as a JSON object json_response = json.loads(openai_response.choices[0].message.content) json_response
>函數調用的應用
在本節中,我們將構建一個穩定的文本摘要,該摘要將以某種方式匯總學校和學生信息。
首先,我們將創建兩個python函數,即extract_student_info和extract_school_info,從函數調用中獲取參數並返回匯總的字符串。
pip install --upgrade openai -q
- 創建Python列表,該列表由學生描述,隨機提示和學校描述組成。添加隨機提示以驗證自動函數調用機械師。
- 我們將使用“描述”列表中的每個文本生成響應。 >
- 如果使用了函數調用,我們將獲得函數的名稱,並基於它,將相關參數應用於函數。否則,返回正常響應。 >
- 打印所有三個樣本的輸出。
import os from openai import OpenAI client = OpenAI( api_key=os.environ['OPENAI_API_KEY'], )
- 示例#1 :GPT模型選擇了“ extract_student_info”,我們得到了有關學生的簡短摘要。 >
- >樣本#2 :GPT模型尚未選擇任何功能,並將提示視為常規問題,結果,我們得到了亞伯拉罕·林肯的傳記。
- >樣本#3 :GPT模型選擇了“ extract_school_info”,我們得到了有關斯坦福大學的簡短摘要。
student_1_description = "David Nguyen is a sophomore majoring in computer science at Stanford University. He is Asian American and has a 3.8 GPA. David is known for his programming skills and is an active member of the university's Robotics Club. He hopes to pursue a career in artificial intelligence after graduating."
>如果您想了解有關OpenAi API的更多信息,請考慮使用OpenAI API課程,並在Python備忘單中使用OpenAi API來創建您的第一個AI驅動項目。
>>
是否可以與外部API或數據庫一起使用OpenAI函數來使用?
>
>>如果模型的功能調用與任何定義的函數不匹配,會發生什麼?
>
如果模型的函數調用與已定義的函數或所提供的架構不匹配,則該函數調用未觸發,並且該模型將輸入視為基於標准文本的提示,返回基於文本的基於典型的基於文本的響應。這確保了處理各種輸入類型的靈活性。
賺取頂級AI認證證明您可以有效,負責任地使用AI。獲得認證,被錄用以上是OpenAI函數調用教程:生成結構化輸出的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Meta的Llama 3.2:多模式和移動AI的飛躍 Meta最近公佈了Llama 3.2,這是AI的重大進步,具有強大的視覺功能和針對移動設備優化的輕量級文本模型。 以成功為基礎

嘿,編碼忍者!您當天計劃哪些與編碼有關的任務?在您進一步研究此博客之前,我希望您考慮所有與編碼相關的困境,這是將其列出的。 完畢? - 讓&#8217

本週的AI景觀:進步,道德考慮和監管辯論的旋風。 OpenAI,Google,Meta和Microsoft等主要參與者已經釋放了一系列更新,從開創性的新車型到LE的關鍵轉變

Shopify首席執行官TobiLütke最近的備忘錄大膽地宣布AI對每位員工的基本期望是公司內部的重大文化轉變。 這不是短暫的趨勢。這是整合到P中的新操作範式

介紹 想像一下,穿過美術館,周圍是生動的繪畫和雕塑。現在,如果您可以向每一部分提出一個問題並獲得有意義的答案,該怎麼辦?您可能會問:“您在講什麼故事?

介紹 Openai已根據備受期待的“草莓”建築發布了其新模型。這種稱為O1的創新模型增強了推理能力,使其可以通過問題進行思考

SQL的Alter表語句:動態地將列添加到數據庫 在數據管理中,SQL的適應性至關重要。 需要即時調整數據庫結構嗎? Alter表語句是您的解決方案。本指南的詳細信息添加了Colu

對於那些可能是我專欄新手的人,我廣泛探討了AI的最新進展,包括體現AI,AI推理,AI中的高科技突破,及時的工程,AI培訓,AI,AI RE RE等主題
