Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Azure OpenAI support #10

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open

Add Azure OpenAI support #10

wants to merge 3 commits into from

Conversation

wch
Copy link
Owner

@wch wch commented Jul 12, 2023

This adds a new endpoint_type parameter to chat_server. To use with Azure:

    chatstream.chat_server("mychat", endpoint_type="azure")

Note that to use Azure, you will also probably need to set some values at the top of your app, as described in https://learn.microsoft.com/en-us/azure/cognitive-services/openai/how-to/switching-endpoints :

import openai

openai.api_type = "azure"
openai.api_key = "..."
openai.api_base = "https://example-endpoint.openai.azure.com"
openai.api_version = "2023-05-15"  # subject to change

I currently do not have access to Azure OpenAI, so I can't test this myself. It can be installed with:

pip install chatstream@git+https://github.com/wch/chatstream.git@azure

@wch wch mentioned this pull request Jul 12, 2023
@wch
Copy link
Owner Author

wch commented Jul 19, 2023

I have this working with Azure, using a deployment I created named my-gpt-35-turbo.

Example app:

import openai
from shiny import App, Inputs, Outputs, Session, ui

import chatstream

openai.api_type = "azure"
openai.api_base = "https://winstontest.openai.azure.com/"
openai.api_version = "2023-03-15-preview"

app_ui = ui.page_fixed(
    chatstream.chat_ui("mychat"),
)


def server(input: Inputs, output: Outputs, session: Session):
    chatstream.chat_server(
        "mychat",
        api_key=os.getenv("OPENAI_API_KEY"),
        model="gpt-3.5-turbo",
        azure_deployment_id="my-gpt-35-turbo",
        debug=True,
    )


app = App(app_ui, server)

Note that you must create a deployment with a custom name. In this case, it is "my-gpt-35-turbo", but you could call it anything. The screen to create it in the Azure control panel will look something like this:

image

Also note that this is created within an Azure resource named winstontest. The URL for that resource is https://winstontest.openai.azure.com/.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant