OpenAI Python SDK ਨਾਲ ਉੱਚ-ਸਤ੍ਹਾ ਇੰਟੀਗ੍ਰੇਸ਼ਨ ਦਿਖਾਉਂਦਾ ਹੈ, ਜੋ Microsoft Foundry Local ਅਤੇ Azure OpenAI ਦੋਵਾਂ ਨੂੰ ਸਹਾਇਕ ਹੈ, ਸਟ੍ਰੀਮਿੰਗ ਜਵਾਬਾਂ ਅਤੇ ਸਹੀ ਤਰ੍ਹਾਂ ਐਰਰ ਹੈਂਡਲਿੰਗ ਦੇ ਨਾਲ।
ਇਸ ਨਮੂਨੇ ਵਿੱਚ ਦਿਖਾਇਆ ਗਿਆ ਹੈ:
- Foundry Local ਅਤੇ Azure OpenAI ਦੇ ਵਿਚਕਾਰ ਆਸਾਨ ਸਵਿੱਚਿੰਗ
- ਵਧੀਆ ਯੂਜ਼ਰ ਅਨੁਭਵ ਲਈ ਸਟ੍ਰੀਮਿੰਗ ਚੈਟ ਕਮਪਲੀਸ਼ਨ
- FoundryLocalManager SDK ਦੀ ਸਹੀ ਵਰਤੋਂ
- ਮਜ਼ਬੂਤ ਐਰਰ ਹੈਂਡਲਿੰਗ ਅਤੇ ਫਾਲਬੈਕ ਮਕੈਨਿਜ਼ਮ
- ਪ੍ਰੋਡਕਸ਼ਨ-ਤਿਆਰ ਕੋਡ ਪੈਟਰਨ
- Foundry Local: ਇੰਸਟਾਲ ਅਤੇ ਚਲ ਰਿਹਾ (ਲੋਕਲ ਇੰਫਰੈਂਸ ਲਈ)
- Python: 3.8 ਜਾਂ ਇਸ ਤੋਂ ਉੱਚਾ OpenAI SDK ਦੇ ਨਾਲ
- Azure OpenAI: ਵੈਧ ਐਂਡਪੌਇੰਟ ਅਤੇ API ਕੁੰਜੀ (ਕਲਾਉਡ ਇੰਫਰੈਂਸ ਲਈ)
-
Python ਐਨਵਾਇਰਮੈਂਟ ਸੈਟਅੱਪ ਕਰੋ:
cd Module08 py -m venv .venv .venv\Scripts\activate -
ਡਿਪੈਂਡੈਂਸੀਜ਼ ਇੰਸਟਾਲ ਕਰੋ:
pip install -r requirements.txt
-
Foundry Local ਸ਼ੁਰੂ ਕਰੋ (ਲੋਕਲ ਮੋਡ ਲਈ):
foundry model run phi-4-mini
ਵਿਕਲਪ 1: FoundryLocalManager ਦੀ ਵਰਤੋਂ (ਸਿਫਾਰਸ਼ ਕੀਤੀ ਗਈ)
# Automatic service discovery and model management
set MODEL=phi-4-mini
python samples\02\sdk_quickstart.pyਵਿਕਲਪ 2: ਮੈਨੁਅਲ ਕਨਫਿਗਰੇਸ਼ਨ
# Manual endpoint configuration
set BASE_URL=http://localhost:8000
set MODEL=phi-4-mini
set API_KEY=
python samples\02\sdk_quickstart.py# Azure OpenAI configuration
set AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com
set AZURE_OPENAI_API_KEY=your-api-key
set AZURE_OPENAI_API_VERSION=2024-08-01-preview
set MODEL=your-deployment-name
python samples\02\sdk_quickstart.pyਇਸ ਨਮੂਨੇ ਵਿੱਚ ਫੈਕਟਰੀ ਪੈਟਰਨ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਗਈ ਹੈ ਸਹੀ ਕਲਾਇੰਟ ਬਣਾਉਣ ਲਈ:
def create_foundry_client():
"""Create Foundry Local client with SDK management."""
manager = FoundryLocalManager(alias)
client = OpenAI(
base_url=manager.endpoint,
api_key=manager.api_key
)
return client, manager.get_model_info(alias).id
def create_azure_client():
"""Create Azure OpenAI client."""
client = OpenAI(
base_url=f"{endpoint}/openai",
api_key=api_key,
default_query={"api-version": api_version}
)
return client, modelਇਸ ਨਮੂਨੇ ਵਿੱਚ ਰੀਅਲ-ਟਾਈਮ ਜਵਾਬ ਜਨਰੇਸ਼ਨ ਲਈ ਸਟ੍ਰੀਮਿੰਗ ਦਿਖਾਈ ਗਈ ਹੈ:
stream = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": prompt}],
stream=True
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)| ਵੈਰੀਏਬਲ | ਵੇਰਵਾ | ਡਿਫਾਲਟ | ਲਾਜ਼ਮੀ |
|---|---|---|---|
MODEL |
ਵਰਤਣ ਲਈ ਮਾਡਲ ਅਲਿਆਸ | phi-4-mini |
ਨਹੀਂ |
BASE_URL |
Foundry Local ਐਂਡਪੌਇੰਟ | http://localhost:8000 |
ਨਹੀਂ |
API_KEY |
API ਕੁੰਜੀ (ਲੋਕਲ ਲਈ ਵਿਕਲਪਿਕ) | "" |
ਨਹੀਂ |
| ਵੈਰੀਏਬਲ | ਵੇਰਵਾ | ਡਿਫਾਲਟ | ਲਾਜ਼ਮੀ |
|---|---|---|---|
AZURE_OPENAI_ENDPOINT |
Azure OpenAI ਸਰੋਤ ਐਂਡਪੌਇੰਟ | - | ਹਾਂ |
AZURE_OPENAI_API_KEY |
Azure OpenAI API ਕੁੰਜੀ | - | ਹਾਂ |
AZURE_OPENAI_API_VERSION |
API ਵਰਜਨ | 2024-08-01-preview |
ਨਹੀਂ |
MODEL |
Azure ਡਿਪਲੌਇਮੈਂਟ ਨਾਮ | your-deployment-name |
ਹਾਂ |
ਇਹ ਨਮੂਨਾ ਐਨਵਾਇਰਮੈਂਟ ਵੈਰੀਏਬਲ ਦੇ ਆਧਾਰ 'ਤੇ ਸਹੀ ਸਰਵਿਸ ਨੂੰ ਆਟੋਮੈਟਿਕ ਤੌਰ 'ਤੇ ਪਛਾਣਦਾ ਹੈ:
- Azure ਮੋਡ: ਜੇ
AZURE_OPENAI_ENDPOINTਅਤੇAZURE_OPENAI_API_KEYਸੈਟ ਕੀਤੇ ਗਏ ਹਨ - Foundry SDK ਮੋਡ: ਜੇ Foundry Local SDK ਉਪਲਬਧ ਹੈ
- ਮੈਨੁਅਲ ਮੋਡ: ਮੈਨੁਅਲ ਕਨਫਿਗਰੇਸ਼ਨ 'ਤੇ ਫਾਲਬੈਕ
- SDK ਤੋਂ ਮੈਨੁਅਲ ਕਨਫਿਗਰੇਸ਼ਨ 'ਤੇ ਗ੍ਰੇਸਫੁਲ ਫਾਲਬੈਕ
- ਟਰਬਲਸ਼ੂਟਿੰਗ ਲਈ ਸਪਸ਼ਟ ਐਰਰ ਸੁਨੇਹੇ
- ਨੈਟਵਰਕ ਸਮੱਸਿਆਵਾਂ ਲਈ ਸਹੀ ਤਰ੍ਹਾਂ ਐਕਸਪਸ਼ਨ ਹੈਂਡਲਿੰਗ
- ਲਾਜ਼ਮੀ ਐਨਵਾਇਰਮੈਂਟ ਵੈਰੀਏਬਲ ਦੀ ਵੈਧਤਾ
Foundry Local ਫਾਇਦੇ:
- ✅ ਕੋਈ API ਖਰਚ ਨਹੀਂ
- ✅ ਡਾਟਾ ਗੋਪਨੀਯਤਾ (ਡਾਟਾ ਡਿਵਾਈਸ ਤੋਂ ਬਾਹਰ ਨਹੀਂ ਜਾਂਦਾ)
- ✅ ਸਹਾਇਕ ਮਾਡਲਾਂ ਲਈ ਘੱਟ ਲੈਟੈਂਸੀ
- ✅ ਆਫਲਾਈਨ ਕੰਮ ਕਰਦਾ ਹੈ
Azure OpenAI ਫਾਇਦੇ:
- ✅ ਨਵੇਂ ਵੱਡੇ ਮਾਡਲਾਂ ਤੱਕ ਪਹੁੰਚ
- ✅ ਉੱਚ throughput
- ✅ ਕੋਈ ਲੋਕਲ ਕੰਪਿਊਟ ਦੀ ਲੋੜ ਨਹੀਂ
- ✅ ਐਂਟਰਪ੍ਰਾਈਜ਼-ਗਰੇਡ SLA
-
"Foundry SDK ਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕੀ" ਚੇਤਾਵਨੀ:
pip install foundry-local-sdk
-
Azure ਪ੍ਰਮਾਣਿਕਤਾ ਗਲਤੀਆਂ:
# Verify your endpoint format echo %AZURE_OPENAI_ENDPOINT% # Should be: https://your-resource.openai.azure.com
-
ਮਾਡਲ ਉਪਲਬਧ ਨਹੀਂ:
# For Foundry Local foundry model list foundry model run your-model-name # For Azure OpenAI # Check your deployment name in Azure Portal
# Foundry Local
foundry service status
curl http://localhost:8000/v1/models
# Azure OpenAI
curl -H "api-key: %AZURE_OPENAI_API_KEY%" "%AZURE_OPENAI_ENDPOINT%/openai/deployments?api-version=2024-08-01-preview"- ਨਮੂਨਾ 03: ਮਾਡਲ ਡਿਸਕਵਰੀ ਅਤੇ ਬੈਂਚਮਾਰਕਿੰਗ
- ਨਮੂਨਾ 04: ਇੱਕ Chainlit RAG ਐਪਲੀਕੇਸ਼ਨ ਬਣਾਉਣਾ
- ਨਮੂਨਾ 05: ਮਲਟੀ-ਏਜੰਟ ਆਰਕੇਸਟ੍ਰੇਸ਼ਨ
- ਨਮੂਨਾ 06: ਮਾਡਲ-ਐਜ਼-ਟੂਲ ਰੂਟਿੰਗ