web-backend/backendUtils/azure_openai.py (43 lines of code) (raw):
from openai import AzureOpenAI
import os
import logging
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
from configuration import Configuration
config = Configuration()
OPENAI_API_KEY = config.get_value("OPENAI_API_KEY")
OPENAI_API_BASE = config.get_value("OPENAI_API_BASE")
OPENAI_MODEL = config.get_value("OPENAI_MODEL")
OPENAI_API_VERSION = config.get_value("OPENAI_API_VERSION")
OPENAI_API_EMBEDDING_MODEL = config.get_value("OPENAI_API_EMBEDDING_MODEL")
def get_embeddings(text):
token_provider = get_bearer_token_provider(
config.credential,
"https://cognitiveservices.azure.com/.default"
)
token = config.credential.get_token("https://cognitiveservices.azure.com/.default").token
openai_client = AzureOpenAI(
azure_ad_token=token,
api_version = OPENAI_API_VERSION,
azure_endpoint =OPENAI_API_BASE
)
embedding = openai_client.embeddings.create(
input = text,
model= OPENAI_API_EMBEDDING_MODEL
).data[0].embedding
return embedding
def run_prompt(prompt,system_prompt):
token_provider = get_bearer_token_provider(
config.credential,
"https://cognitiveservices.azure.com/.default"
)
token = config.credential.get_token("https://cognitiveservices.azure.com/.default").token
openai_client = AzureOpenAI(
azure_ad_token=token,
api_version = OPENAI_API_VERSION,
azure_endpoint =OPENAI_API_BASE
)
response = openai_client.chat.completions.create(
model=OPENAI_MODEL,
messages=[{ "role": "system", "content": system_prompt},
{"role":"user","content":prompt}])
return response.choices[0].message.content