OpenAI-VBA-Framework es un conjunto de herramientas independiente para que los desarrolladores creen aplicaciones VBA con los modelos de lenguaje de OpenAI como GPT-4, ChatGPT y DALL-E. Ofrece un conjunto de clases para una fácil integración con la API de OpenAI. Tenga en cuenta que este proyecto no está asociado ni respaldado oficialmente por OpenAI.
clsOpenAI
- Clase principal para interactuar con OpenAIclsOpenAILogger
: clase de registro para depuración y seguimientoclsOpenAIMessage
: clase para manejar mensajes individualesclsOpenAIMessages
: clase para manejar colecciones de mensajesclsOpenAIRequest
- Clase para realizar solicitudes a OpenAIclsOpenAIResponse
: clase para manejar respuestas de OpenAIIOpenAINameProvider
: clase de interfaz para provisión de nombres El módulo mdOpenAI_tests
se proporciona para probar la funcionalidad del marco.
OpenAIFrameworkDemo.xlsm
es un archivo que contiene todo el código del repositorio para fines de demostración. También se incluyen otros archivos en el repositorio para su control de versiones.
A continuación se muestran algunos ejemplos del uso del marco:
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
Puede personalizar OpenAI-VBA-Framework ajustando las propiedades en la clase 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
Puede consultar el estado de la API OpenAI aquí.
Puede obtener más información sobre los códigos de estado HTTP devueltos por la API aquí.
Para problemas de codificación, utilice la siguiente línea para revisar el código.
oOpenAI.IsLogOutputRequired True
Todo el marco se puede probar para detectar cambios importantes utilizando el módulo mdTest_OpenAI
. Simplemente ejecute el procedimiento RunAllTests
.
Las solicitudes de extracción son bienvenidas. Para cambios importantes, primero abra un problema para discutir lo que le gustaría cambiar.
Este proyecto está licenciado según los términos de la licencia MIT.