Azure OpenAI Service provides REST API access to OpenAI's powerful language models including GPT-4, GPT-3.5-turbo, Codex, DALL-E, and Embeddings models through Azure's secure, enterprise-ready infrastructure.
importopenaifromazure.identityimportDefaultAzureCredential,get_bearer_token_provider# Configure Azure OpenAIopenai.api_type="azure"openai.api_base="https://myopenai.openai.azure.com/"openai.api_version="2024-02-15-preview"# Use Azure AD authenticationtoken_provider=get_bearer_token_provider(DefaultAzureCredential(),"https://cognitiveservices.azure.com/.default")openai.api_key=token_provider()# Chat completionresponse=openai.ChatCompletion.create(engine="gpt-4",# Your deployment namemessages=[{"role":"system","content":"You are a helpful assistant."},{"role":"user","content":"Explain quantum computing"}],temperature=0.7,max_tokens=1000)print(response.choices[0].message.content)
importrequestsimportjson# API configurationapi_base="https://myopenai.openai.azure.com/"api_key="your-api-key"api_version="2024-02-15-preview"deployment_name="gpt-4"# Headersheaders={"Content-Type":"application/json","Authorization":f"Bearer {api_key}"}# Request payloadpayload={"messages":[{"role":"system","content":"You are a helpful assistant."},{"role":"user","content":"What is machine learning?"}],"temperature":0.7,"max_tokens":800}# Make requesturl=f"{api_base}openai/deployments/{deployment_name}/chat/completions?api-version={api_version}"response=requests.post(url,headers=headers,data=json.dumps(payload))result=response.json()print(result["choices"][0]["message"]["content"])
defstream_chat_response(messages):response=openai.ChatCompletion.create(engine="gpt-4",messages=messages,temperature=0.7,max_tokens=1000,stream=True)forchunkinresponse:ifchunk.choices[0].delta.get("content"):yieldchunk.choices[0].delta.content# Usagemessages=[{"role":"system","content":"You are a helpful assistant."},{"role":"user","content":"Write a story about AI"}]forcontentinstream_chat_response(messages):print(content,end='',flush=True)
importjson# Define functionsfunctions=[{"name":"get_weather","description":"Get current weather information","parameters":{"type":"object","properties":{"location":{"type":"string","description":"City name"},"unit":{"type":"string","enum":["celsius","fahrenheit"],"description":"Temperature unit"}},"required":["location"]}}]# Chat with function callingresponse=openai.ChatCompletion.create(engine="gpt-4",messages=[{"role":"user","content":"What's the weather like in Seattle?"}],functions=functions,function_call="auto")# Handle function callifresponse.choices[0].message.get("function_call"):function_call=response.choices[0].message.function_callfunction_name=function_call.namefunction_args=json.loads(function_call.arguments)# Execute function (implement get_weather)weather_result=get_weather(**function_args)# Continue conversation with function resultmessages=[{"role":"user","content":"What's the weather like in Seattle?"},response.choices[0].message,{"role":"function","name":function_name,"content":json.dumps(weather_result)}]final_response=openai.ChatCompletion.create(engine="gpt-4",messages=messages)
importnumpyasnpdefget_embedding(text):response=openai.Embedding.create(engine="text-embedding-ada-002",input=text)returnresponse.data[0].embeddingdefcosine_similarity(a,b):returnnp.dot(a,b)/(np.linalg.norm(a)*np.linalg.norm(b))# Create knowledge basedocuments=["Azure is Microsoft's cloud platform","Machine learning is a subset of AI","Python is a programming language"]# Generate embeddingsembeddings=[get_embedding(doc)fordocindocuments]# Queryquery="What is Microsoft's cloud service?"query_embedding=get_embedding(query)# Find most similar documentsimilarities=[cosine_similarity(query_embedding,emb)forembinembeddings]best_match_idx=np.argmax(similarities)print(f"Best match: {documents[best_match_idx]}")print(f"Similarity: {similarities[best_match_idx]:.3f}")
# Configure content filterresponse=openai.ChatCompletion.create(engine="gpt-4",messages=[{"role":"user","content":"Your message here"}],content_filter_policy="default"# or custom policy)# Check for content filteringifhasattr(response.choices[0],'content_filter_results'):filter_results=response.choices[0].content_filter_resultsiffilter_results:print("Content was filtered:",filter_results)
# Implement usage monitoringclassUsageMonitor:def__init__(self):self.request_count=0self.token_usage=0deftrack_request(self,response):self.request_count+=1self.token_usage+=response.usage.total_tokensdefget_stats(self):return{"requests":self.request_count,"tokens":self.token_usage,"avg_tokens_per_request":self.token_usage/max(1,self.request_count)}monitor=UsageMonitor()# Use with requestsresponse=openai.ChatCompletion.create(...)monitor.track_request(response)
importtiktokendefcount_tokens(text,model="gpt-4"):encoding=tiktoken.encoding_for_model(model)returnlen(encoding.encode(text))defoptimize_prompt(prompt,max_tokens=4000):token_count=count_tokens(prompt)iftoken_count>max_tokens:# Truncate or summarize promptencoding=tiktoken.encoding_for_model("gpt-4")tokens=encoding.encode(prompt)truncated_tokens=tokens[:max_tokens]returnencoding.decode(truncated_tokens)returnprompt
# API Key authenticationopenai.api_key="your-api-key"# Azure AD authenticationfromazure.identityimportDefaultAzureCredentialcredential=DefaultAzureCredential()token=credential.get_token("https://cognitiveservices.azure.com/.default")openai.api_key=token.token
# Configure for private endpointsopenai.api_base="https://myopenai.privatelink.openai.azure.com/"# Use with VNet integrationimportrequestssession=requests.Session()session.verify="/path/to/ca-bundle.crt"# Custom CA if needed# Configure proxy if requiredsession.proxies={'http':'http://proxy.company.com:8080','https':'https://proxy.company.com:8080'}