sp-dev-fx-webparts/samples/react-azure-openai-api-stream
Hugo Bernier 8e5a9ad2c6 Updated readme, container 2024-01-10 22:43:33 -05:00
..
.devcontainer Updated readme, container 2024-01-10 22:43:33 -05:00
assets Updated readme, container 2024-01-10 22:43:33 -05:00
config sample main code added (WIP readme file) 2024-01-02 22:11:30 +01:00
src sample main code added (WIP readme file) 2024-01-02 22:11:30 +01:00
teams sample main code added (WIP readme file) 2024-01-02 22:11:30 +01:00
.eslintrc.js sample main code added (WIP readme file) 2024-01-02 22:11:30 +01:00
.gitignore sample main code added (WIP readme file) 2024-01-02 22:11:30 +01:00
.npmignore sample main code added (WIP readme file) 2024-01-02 22:11:30 +01:00
.nvmrc Updated readme, container 2024-01-10 22:43:33 -05:00
.yo-rc.json sample main code added (WIP readme file) 2024-01-02 22:11:30 +01:00
README.md Updated readme, container 2024-01-10 22:43:33 -05:00
gulpfile.js sample main code added (WIP readme file) 2024-01-02 22:11:30 +01:00
package-lock.json Updated readme, container 2024-01-10 22:43:33 -05:00
package.json Updated readme, container 2024-01-10 22:43:33 -05:00
tsconfig.json sample main code added (WIP readme file) 2024-01-02 22:11:30 +01:00

README.md

Calling Azure OpenAI API in Stream mode

Summary

This web part shows how you can call Azure OpenAI API in Streaming mode, so the web part shows the data coming from the API in chunks, giving a much better user experience, so you are not waiting for the entire response. It also shows how you can cancel the streaming response at any point, which is useful to safe some tokens (hence money), if the generating response does not look good to you (like when getting AI hallucinations).

./assets/react-azure-openai-api-stream.gif

Compatibility

⚠️ Important
Every SPFx version is optimally compatible with specific versions of Node.js. In order to be able to build this sample, you need to ensure that the version of Node on your workstation matches one of the versions listed in this section. This sample will not work on a different version of Node.
Refer to https://aka.ms/spfx-matrix for more information on SPFx compatibility.

This sample is optimally compatible with the following environment configuration:

SPFx 1.18.2 Node.js v16 | v18 Compatible with SharePoint Online Does not work with SharePoint 2019 Does not work with SharePoint 2016 (Feature Pack 2) Local Workbench Unsupported Hosted Workbench Compatible Compatible with Remote Containers

Applies to

Get your own free development tenant by subscribing to Microsoft 365 developer program

Prerequisites

  • Your Azure Subscription has the Azure OpenAI service available. You will see this message if you try to add Azure OpenAI service in your Subscription (follow the link in the Azure portal to request access).

Azure OpenAI Service is currently available to customers via an application form. The selected subscription has not been enabled for use of the service and does not have quota for any pricing tiers. Click here to request access to Azure OpenAI service.

  • You have created an Azure OpenAI service in your subscription
  • Create a Deployment Model (use GPT-3.5-turbo or GPT-4)
  • Grab the Azure OpenAI Key, Endpoint and the deployment model created in previous step (go to your Azure OpenAI service -> Keys and Endpoint)

Contributors

Version history

Version Date Comments
1.0 January 2, 2024 Initial release

Minimal Path to Awesome

Features

This sample illustrates the following concepts:

  • Calling Azure OpenAI chat/completions endpoint in streaming mode
  • Keeping chat history during the chat session
  • How to cancel an streaming request
  • Using MS Graph toolkit with the Person component
  • Multiple FluentUI components

Notice that better pictures and documentation will increase the sample usage and the value you are providing for others. Thanks for your submissions advance.

Share your web part with others through Microsoft 365 Patterns and Practices program to get visibility and exposure. More details on the community, open-source projects and other activities from http://aka.ms/m365pnp.

References