OpenAI-VBA-Framework عبارة عن مجموعة أدوات مستقلة للمطورين لإنشاء تطبيقات VBA باستخدام نماذج لغة OpenAI مثل GPT-4 وChatGPT وDALL-E. فهو يقدم مجموعة من الفئات لسهولة التكامل مع واجهة برمجة التطبيقات الخاصة بـ 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.