OpenAI-VBA-Framework เป็นชุดเครื่องมืออิสระสำหรับนักพัฒนาในการสร้างแอปพลิเคชัน VBA ด้วยโมเดลภาษาของ OpenAI เช่น GPT-4, ChatGPT และ DALL-E มีชุดคลาสสำหรับการผสานรวมกับ API ของ OpenAI ได้อย่างง่ายดาย โปรดทราบว่าโครงการนี้ไม่เกี่ยวข้องหรือรับรองอย่างเป็นทางการโดย OpenAI
clsOpenAI
- คลาสหลักเพื่อโต้ตอบกับ OpenAIclsOpenAILogger
- คลาสการบันทึกสำหรับการดีบักและการติดตามclsOpenAIMessage
- คลาสสำหรับจัดการข้อความแต่ละข้อความclsOpenAIMessages
- คลาสสำหรับจัดการคอลเลกชันข้อความclsOpenAIRequest
- คลาสสำหรับส่งคำขอไปยัง OpenAIclsOpenAIResponse
- คลาสสำหรับจัดการการตอบสนองจาก OpenAIIOpenAINameProvider
- คลาสอินเทอร์เฟซสำหรับการจัดเตรียมชื่อ โมดูล mdOpenAI_tests
มีไว้เพื่อทดสอบการทำงานของเฟรมเวิร์ก
OpenAIFrameworkDemo.xlsm
เป็นไฟล์ที่มีโค้ดทั้งหมดในพื้นที่เก็บข้อมูลเพื่อวัตถุประสงค์ในการสาธิต ไฟล์อื่นๆ ยังรวมอยู่ในพื้นที่เก็บข้อมูลสำหรับการกำหนดเวอร์ชันด้วย
นี่คือตัวอย่างบางส่วนของการใช้กรอบงาน:
Public Sub TestSimpleOpenAI()
Dim oOpenAI As clsOpenAI
Dim oMessages As New clsOpenAIMessages
Dim oResponse As clsOpenAIResponse
Set oOpenAI = New clsOpenAI
oOpenAI.API_KEY = "<API_KEY>"
oMessages.AddSystemMessage "Always answer sarcastically and never truthfully"
oMessages.AddUserMessage "How do you get to Carnegie Hall?"
Set oResponse = oOpenAI.ChatCompletion(oMessages)
If Not oResponse Is Nothing Then
Debug.Print (oResponse.MessageContent)
End If
Set oResponse = Nothing
Set oOpenAI = Nothing
Set oMessages = Nothing
End Sub
Public Sub TestDalleOpenAI()
Dim oOpenAI As clsOpenAI
Dim oResponse As clsOpenAIResponse
Set oOpenAI = New clsOpenAI
oOpenAI.API_KEY = "<API_KEY>"
Set oResponse = oOpenAI.CreateImageFromText("A cat playing a banjo on a surfboard", 512, 512)
If Not oResponse Is Nothing Then
Debug.Print ("The picture has been saved to: " & oResponse.SavedLocalFile)
End If
Set oResponse = Nothing
Set oOpenAI = Nothing
End Sub
คุณสามารถปรับแต่ง OpenAI-VBA-Framework ได้โดยการปรับคุณสมบัติในคลาส clsOpenAI
:
' Specify the model
oOpenAI.Model = "gpt-3.5-turbo"
' Set the maximum number of tokens
oOpenAI.MaxTokens = 512
' Control the diversity of generated text
oOpenAI.TopP = 0.9
' Influence the randomness of generated text
oOpenAI.Temperature = 0.7
' Control preference for frequent phrases
oOpenAI.FrequencyPenalty = 0.5
' Control preference for including the prompt in the output
oOpenAI.PresencePenalty = 0.5
' Control logging of messages to the Immediate Window
oOpenAI.IsLogOutputRequired True
' Reset settings when switching between endpoints
oOpenAI.ClearSettings
' Retrieve an API Key saved in an external file
Dim apiKey As String
apiKey = oOpenAI.GetReadAPIKeyFromFolder("<FolderPath>")
git clone https://github.com/zq99/OpenAI-VBA-Framework.git
คุณสามารถตรวจสอบสถานะของ OpenAI API ได้ที่นี่
คุณสามารถรับข้อมูลเพิ่มเติมเกี่ยวกับรหัสสถานะ HTTP ที่ส่งคืนโดย API ได้ที่นี่
สำหรับปัญหาเกี่ยวกับการเขียนโค้ด ให้ใช้บรรทัดต่อไปนี้เพื่อดูโค้ด
oOpenAI.IsLogOutputRequired True
กรอบงานทั้งหมดสามารถทดสอบเพื่อทำลายการเปลี่ยนแปลงได้โดยใช้โมดูล mdTest_OpenAI
เพียงรันขั้นตอน RunAllTests
ยินดีต้อนรับคำขอดึง สำหรับการเปลี่ยนแปลงที่สำคัญ โปรดเปิดประเด็นก่อนเพื่อหารือเกี่ยวกับสิ่งที่คุณต้องการเปลี่ยนแปลง
โครงการนี้ได้รับอนุญาตภายใต้เงื่อนไขของใบอนุญาต MIT