OpenAI-VBA-Framework é um kit de ferramentas independente para desenvolvedores criarem aplicativos VBA com modelos de linguagem OpenAI como GPT-4, ChatGPT e DALL-E. Oferece um conjunto de classes para fácil integração com a API do OpenAI. Observe que este projeto não está oficialmente associado ou endossado pela OpenAI.
clsOpenAI
– Classe principal para interagir com OpenAIclsOpenAILogger
– Classe de registro para depuração e rastreamentoclsOpenAIMessage
– Classe para lidar com mensagens individuaisclsOpenAIMessages
– Classe para lidar com coleções de mensagensclsOpenAIRequest
– Classe para fazer solicitações ao OpenAIclsOpenAIResponse
– Classe para lidar com respostas do OpenAIIOpenAINameProvider
– Classe de interface para fornecimento de nome O módulo mdOpenAI_tests
é fornecido para testar a funcionalidade do framework.
OpenAIFrameworkDemo.xlsm
é um arquivo que contém todo o código do repositório para fins de demonstração. Outros arquivos também estão incluídos no repositório para controle de versão.
Aqui estão alguns exemplos de uso da estrutura:
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
Você pode personalizar o OpenAI-VBA-Framework ajustando as propriedades na classe 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
Você pode verificar o status da API OpenAI aqui.
Você pode obter mais informações sobre os códigos de status HTTP retornados pela API aqui.
Para problemas de codificação, use a linha a seguir para percorrer o código.
oOpenAI.IsLogOutputRequired True
Toda a estrutura pode ser testada para alterações significativas usando o módulo mdTest_OpenAI
. Basta executar o procedimento RunAllTests
.
Solicitações pull são bem-vindas. Para mudanças importantes, abra primeiro uma edição para discutir o que você gostaria de mudar.
Este projeto está licenciado sob os termos da licença do MIT.