razurechat-gpt-4chattr

How to integrate GPT-4 model hosted on Azure with the gptstudio package?


I am looking to integrate the OpenAI GPT-4 model into my application. Here are the details I have:

I edited the .Renviron file accordingly:

AZURE_OPENAI_TASK="completions"
AZURE_OPENAI_ENDPOINT="https://xxxxxxxxxxxxxxx.openai.azure.com/"
AZURE_OPENAI_DEPLOYMENT_NAME="gpt-4o"
AZURE_OPENAI_KEY="*******************"
AZURE_OPENAI_API_VERSION="2024-02-01"
AZURE_OPENAI_USE_TOKEN=FALSE

I want to integrate it with gptstudio. Could someone guide me on authenticating and making API requests to this endpoint?

I tried:

library(gptstudio)
chat(service = "azure_openai", prompt = "hello", model = "gpt-4)
#> $messages
#> $messages[[1]]
#> $messages[[1]]$role
#> [1] "system"
#> 
#> $messages[[1]]$content
#> As a chat bot assisting an R programmer working in the RStudio IDE it is important to tailor responses to their skill level and preferred coding style. They consider themselves to be a beginner R programmer. Provide answers with their skill level in mind.  
#> 
#> 
#> $messages[[2]]
#> $messages[[2]]$role
#> [1] "user"
#> 
#> $messages[[2]]$content
#> [1] "hello"
#> Error in `query_api_azure_openai()`:
#> ✖ Azure OpenAI API request failed. Error 400 - Bad Request
#> ℹ Visit the Azure OpenAi Error code guidance
#>   (<https://help.openai.com/en/articles/6891839-api-error-code-guidance>) for
#>   more details
#> ℹ You can also visit the API documentation
#>   (<https://platform.openai.com/docs/guides/error-codes/api-errors>)

Solution

  • I would recommend Hadley Wickham's new package elmer. It is very simple. You can save your Azure API configuration in the .Renviron by calling usethis::edit_r_environ() where you can setup: AZURE_OPENAI_ENDPOINT, AZURE_OPENAI_DEPLOYMENT_NAME, AZURE_OPENAI_API_VERSION and AZURE_OPENAI_KEY.

    Then you can use them to configure your chat object:

    library(elmer)
    chat <- chat_azure(endpoint = Sys.getenv("AZURE_OPENAI_ENDPOINT"),
                        deployment_id = Sys.getenv("AZURE_OPENAI_DEPLOYMENT_NAME"),
                        api_version = Sys.getenv("AZURE_OPENAI_API_VERSION"),
                        api_key = Sys.getenv("AZURE_OPENAI_KEY"))
    

    One example:

    chat$chat("What is R?")
    #> R is a programming language and free software environment used primarily for 
    #> statistical computing and data analysis. It was created by statisticians Ross 
    #> Ihaka and Robert Gentleman in 1993. The R environment provides a wide variety 
    #> of statistical and graphical techniques, and it is highly extensible. This 
    #> makes it a powerful tool for data manipulation, calculation, and graphical 
    #> display.
    #> 
    #> R features include:
    #> - An effective data handling and storage facility
    #> - A suite of operators for calculations on arrays, in particular matrices
    #> - A large, coherent, and integrated collection of intermediate tools for data 
    #> analysis
    #> - Graphical facilities for data analysis and display, either on-screen or on 
    #> hardcopy
    #> - A well-developed, simple, and effective programming language which includes 
    #> conditionals, loops, user-defined recursive functions, and input and output 
    #> facilities.
    #> 
    #> R has a large and active community, with many packages available to extend its 
    #> capabilities. These packages are often contributed by users and cover 
    #> specialized areas of statistics, machine learning, bioinformatics, and more. 
    #> The Comprehensive R Archive Network (CRAN) is the main repository for these 
    #> packages. Because of its power and flexibility, R is widely used in academia, 
    #> research, and industry.