Skip to content

Instantly share code, notes, and snippets.

@pamelafox
Last active November 25, 2025 22:25
Show Gist options
  • Select an option

  • Save pamelafox/937c420a452195f7096f68bdcc27fe88 to your computer and use it in GitHub Desktop.

Select an option

Save pamelafox/937c420a452195f7096f68bdcc27fe88 to your computer and use it in GitHub Desktop.
Claude with Python
import os
from anthropic import AnthropicFoundry
from dotenv import load_dotenv
load_dotenv()
endpoint = "https://pf-claude-foundry-proje-resource.openai.azure.com/anthropic"
deployment_name = "claude-sonnet-4-5"
client = AnthropicFoundry(
api_key=os.environ["CLAUDE_API_KEY"],
base_url=endpoint
)
message = client.messages.create(
model=deployment_name,
messages=[
{"role": "user", "content": "What is the capital of France?"}
],
max_tokens=1024,
)
print(message.content)
from openai import OpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
token_provider = get_bearer_token_provider(DefaultAzureCredential(), "https://ai.azure.com/.default")
client = OpenAI(
base_url="https://pf-claude-foundry-proje-resource.services.ai.azure.com/api/projects/pf-claude-foundry-project/openai",
api_key=token_provider,
default_query={"api-version": "2025-11-15-preview"}
)
response = client.responses.create(
model="claude-sonnet-4-5",
input="Write a one-sentence bedtime story about a unicorn."
)
print(f"Response from model: {response.model}:\n\n{response.output_text}")
from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient
project_client = AIProjectClient(
endpoint="https://pf-claude-foundry-proje-resource.services.ai.azure.com/api/projects/pf-claude-foundry-project",
credential=DefaultAzureCredential(),
)
openai_client = project_client.get_openai_client()
response = openai_client.responses.create(
model="claude-sonnet-4-5",
input="What is the capital/major city of France?",
)
print(response.model_dump_json(indent=2))
import asyncio
import os
from azure.identity.aio import AzureDeveloperCliCredential, get_bearer_token_provider
from dotenv import load_dotenv
from openai import AsyncOpenAI
from pydantic_ai import ModelRequest, UserPromptPart, ModelResponse
from pydantic_ai.models import ModelRequestParameters
from pydantic_ai.models.openai import OpenAIResponsesModel
from pydantic_ai.providers.openai import OpenAIProvider
load_dotenv(override=True)
async_credential = None
async_credential = AzureDeveloperCliCredential()
token_provider = get_bearer_token_provider(
AzureDeveloperCliCredential(tenant_id=os.environ["AZURE_TENANT_ID"]), "https://ai.azure.com/.default")
client = AsyncOpenAI(
base_url="https://pf-claude-foundry-proje-resource.services.ai.azure.com/api/projects/pf-claude-foundry-project/openai",
api_key=token_provider,
default_query={"api-version": "2025-11-15-preview"}
)
model = OpenAIResponsesModel(
"claude-sonnet-4-5",
provider=OpenAIProvider(openai_client=client)
)
async def main():
response:ModelResponse = await model.request([ModelRequest(parts=[UserPromptPart(content="What is the capital of France?")])],
model_settings=None,
model_request_parameters=ModelRequestParameters())
print(f"Response from model: {response.text}")
if async_credential:
await async_credential.close()
if __name__ == "__main__":
asyncio.run(main())
import asyncio
import os
from azure.identity.aio import AzureDeveloperCliCredential, get_bearer_token_provider
from dotenv import load_dotenv
from openai import AsyncOpenAI
from pydantic_ai import Agent
from pydantic_ai.models.openai import OpenAIResponsesModel
from pydantic_ai.providers.openai import OpenAIProvider
load_dotenv(override=True)
async_credential = AzureDeveloperCliCredential()
token_provider = get_bearer_token_provider(
AzureDeveloperCliCredential(tenant_id=os.environ["AZURE_TENANT_ID"]), "https://ai.azure.com/.default")
client = AsyncOpenAI(
base_url="https://pf-claude-foundry-proje-resource.services.ai.azure.com/api/projects/pf-claude-foundry-project/openai",
api_key=token_provider,
default_query={"api-version": "2025-11-15-preview"}
)
model = OpenAIResponsesModel(
"claude-sonnet-4-5",
provider=OpenAIProvider(openai_client=client)
)
agent: Agent[None, str] = Agent(
model,
instructions="You are a Spanish tutor. Help the user learn Spanish. ONLY respond in Spanish.",
output_type=str,
)
async def main():
result = await agent.run("oh hey how are you?")
print(result.output)
if async_credential:
await async_credential.close()
if __name__ == "__main__":
asyncio.run(main())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment