OpenAI-VBA-Framework — это независимый набор инструментов для разработчиков, позволяющий создавать приложения VBA с использованием таких языковых моделей OpenAI, как GPT-4, ChatGPT и DALL-E. Он предлагает набор классов для простой интеграции с API OpenAI. Обратите внимание, что этот проект официально не связан с OpenAI и не одобрен ею.
clsOpenAI
— основной класс для взаимодействия с OpenAI.clsOpenAILogger
— класс ведения журнала для отладки и отслеживания.clsOpenAIMessage
— класс для обработки отдельных сообщений.clsOpenAIMessages
— класс для обработки коллекций сообщений.clsOpenAIRequest
— Класс для отправки запросов к OpenAI.clsOpenAIResponse
— класс для обработки ответов от OpenAI.IOpenAINameProvider
— класс интерфейса для предоставления имени. Для тестирования функциональности фреймворка предусмотрен модуль 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.