Mengembangkan aplikasi dengan Kernel Semantik dan Microsoft Foundry (klasik)

Hanya berlaku untuk:Portal Foundry (klasik). Artikel ini tidak tersedia untuk portal Foundry baru. Pelajari selengkapnya tentang portal baru.

Catatan

Tautan dalam artikel ini mungkin membuka konten dalam dokumentasi Microsoft Foundry baru alih-alih dokumentasi Foundry (klasik) yang Anda lihat sekarang.

Dalam artikel ini, Anda mempelajari cara menggunakan Kernel Semantik dengan model yang disebarkan dari katalog model Foundry di portal Microsoft Foundry.

Penting

Azure AI Inference beta SDK dihentikan pada 26 Agustus 2026. Beralih ke OPENAI/v1 API yang tersedia secara umum dengan OpenAI SDK yang stabil. Ikuti panduan migrasi untuk beralih ke OpenAI/v1, menggunakan SDK untuk bahasa pemrograman pilihan Anda.

Prasyarat

  • Akun Azure dengan langganan aktif. Jika Anda tidak memilikinya, buat akun Azure free, yang menyertakan langganan uji coba gratis.

  • Proyek Foundry seperti yang dijelaskan di Membuat proyek di portal Foundry.

  • Model yang sudah diterapkan yang mendukung Azure AI Model Inference API. Artikel ini menggunakan Mistral-Large implementasi. Anda dapat menggunakan model apa pun. Untuk menggunakan kemampuan penyematan di LlamaIndex, Anda memerlukan model penyematan seperti cohere-embed-v3-multilingual.

  • Python 3.10 atau yang lebih baru terinstal, termasuk pip.

  • Kernel Semantik terinstal. Anda dapat menggunakan perintah berikut:

    pip install semantic-kernel
    
  • Artikel ini menggunakan API Inferensi Model, jadi instal dependensi Azure yang relevan. Anda dapat menggunakan perintah berikut:

    pip install semantic-kernel[azure]
    

Mengonfigurasi lingkungan

Untuk menggunakan model bahasa yang disebarkan di portal Foundry, Anda memerlukan titik akhir dan kredensial untuk menyambungkan ke proyek Anda. Ikuti langkah-langkah ini untuk mendapatkan informasi yang Anda butuhkan dari model:

Tips

Karena Anda dapat kustomisasi panel kiri di portal Microsoft Foundry, Anda mungkin melihat item yang berbeda dari yang diperlihatkan dalam langkah-langkah ini. Jika Anda tidak melihat apa yang Anda cari, pilih ... Lainnya di bagian bawah panel kiri.

  1. Masuk ke Microsoft Foundry.

  2. Buka proyek di mana model ditempatkan, jika belum dibuka.

  3. Buka Model + titik akhir dan pilih model yang Anda sebarkan seperti yang ditunjukkan dalam prasyarat.

  4. Salin URL titik akhir dan kunci.

    Tips

    Jika Anda menyebarkan model dengan dukungan Microsoft Entra ID, Anda tidak memerlukan kunci.

Contoh ini menggunakan variabel lingkungan untuk URL titik akhir dan kunci:

export AZURE_AI_INFERENCE_ENDPOINT="<your-model-endpoint-goes-here>"
export AZURE_AI_INFERENCE_API_KEY="<your-key-goes-here>"

Setelah Anda mengonfigurasi titik akhir dan kunci, buat klien untuk menyambungkan ke titik akhir:

from semantic_kernel.connectors.ai.azure_ai_inference import AzureAIInferenceChatCompletion

chat_completion_service = AzureAIInferenceChatCompletion(ai_model_id="<deployment-name>")

Tips

Klien secara otomatis membaca variabel AZURE_AI_INFERENCE_ENDPOINT lingkungan dan AZURE_AI_INFERENCE_API_KEY untuk terhubung ke model. Anda dapat meneruskan endpoint dan kunci langsung ke klien dengan menggunakan parameter endpoint dan api_key pada konstruktor.

Atau, jika titik akhir Anda mendukung Microsoft Entra ID, Anda dapat menggunakan kode berikut untuk membuat klien:

export AZURE_AI_INFERENCE_ENDPOINT="<your-model-endpoint-goes-here>"
from semantic_kernel.connectors.ai.azure_ai_inference import AzureAIInferenceChatCompletion

chat_completion_service = AzureAIInferenceChatCompletion(ai_model_id="<deployment-name>")

Catatan

Jika Anda menggunakan Microsoft Entra ID, pastikan titik akhir disebarkan dengan metode autentikasi tersebut dan Anda memiliki izin yang diperlukan untuk memanggilnya.

Azure OpenAI model

Jika Anda menggunakan model OpenAI Azure, gunakan kode berikut untuk membuat klien:

from azure.ai.inference.aio import ChatCompletionsClient
from azure.identity.aio import DefaultAzureCredential

from semantic_kernel.connectors.ai.azure_ai_inference import AzureAIInferenceChatCompletion

chat_completion_service = AzureAIInferenceChatCompletion(
    ai_model_id="<deployment-name>",
    client=ChatCompletionsClient(
        endpoint=f"{str(<your-azure-open-ai-endpoint>).strip('/')}/openai/deployments/{<deployment_name>}",
        credential=DefaultAzureCredential(),
        credential_scopes=["https://cognitiveservices.azure.com/.default"],
    ),
)

Parameter inferensi

Anda dapat mengonfigurasi cara melakukan inferensi dengan menggunakan AzureAIInferenceChatPromptExecutionSettings kelas :

from semantic_kernel.connectors.ai.azure_ai_inference import AzureAIInferenceChatPromptExecutionSettings

execution_settings = AzureAIInferenceChatPromptExecutionSettings(
    max_tokens=100,
    temperature=0.5,
    top_p=0.9,
    # extra_parameters={...},    # model-specific parameters
)

Memanggil layanan

Pertama, panggil layanan penyelesaian obrolan dengan riwayat obrolan sederhana:

Tips

Kernel Semantik adalah pustaka asinkron, jadi Anda perlu menggunakan pustaka asinkron untuk menjalankan kode.

import asyncio

async def main():
    ...

if __name__ == "__main__":
    asyncio.run(main())
from semantic_kernel.contents.chat_history import ChatHistory

chat_history = ChatHistory()
chat_history.add_user_message("Hello, how are you?")

response = await chat_completion_service.get_chat_message_content(
    chat_history=chat_history,
    settings=execution_settings,
)
print(response)

Atau, Anda dapat melakukan streaming respons dari layanan:

chat_history = ChatHistory()
chat_history.add_user_message("Hello, how are you?")

response = chat_completion_service.get_streaming_chat_message_content(
    chat_history=chat_history,
    settings=execution_settings,
)

chunks = []
async for chunk in response:
    chunks.append(chunk)
    print(chunk, end="")

full_response = sum(chunks[1:], chunks[0])

Membuat percakapan yang berjalan lama

Anda dapat membuat percakapan yang berjalan lama dengan menggunakan perulangan:

while True:
    response = await chat_completion_service.get_chat_message_content(
        chat_history=chat_history,
        settings=execution_settings,
    )
    print(response)
    chat_history.add_message(response)
    chat_history.add_user_message(user_input = input("User:> "))

Jika Anda melakukan streaming respons, Anda dapat menggunakan kode berikut:

while True:
    response = chat_completion_service.get_streaming_chat_message_content(
        chat_history=chat_history,
        settings=execution_settings,
    )

    chunks = []
    async for chunk in response:
        chunks.append(chunk)
        print(chunk, end="")

    full_response = sum(chunks[1:], chunks[0])
    chat_history.add_message(full_response)
    chat_history.add_user_message(user_input = input("User:> "))

Menggunakan model embedding

Konfigurasikan lingkungan Anda mirip dengan langkah-langkah sebelumnya, tetapi gunakan AzureAIInferenceEmbeddings kelas :

from semantic_kernel.connectors.ai.azure_ai_inference import AzureAIInferenceTextEmbedding

embedding_generation_service = AzureAIInferenceTextEmbedding(ai_model_id="<deployment-name>")

Kode berikut adalah contoh bagaimana mendapatkan embedding dari layanan.

embeddings = await embedding_generation_service.generate_embeddings(
    texts=["My favorite color is blue.", "I love to eat pizza."],
)

for embedding in embeddings:
    print(embedding)