Udostępnij za pośrednictwem


Tworzenie podstawowej aplikacji czatu w języku Python przy użyciu zestawu AZURE AI Foundry SDK

Ważne

Elementy oznaczone (wersja zapoznawcza) w tym artykule są obecnie dostępne w publicznej wersji zapoznawczej. Ta wersja zapoznawcza jest udostępniana bez umowy dotyczącej poziomu usług i nie zalecamy korzystania z niej w przypadku obciążeń produkcyjnych. Niektóre funkcje mogą być nieobsługiwane lub ograniczone. Aby uzyskać więcej informacji, zobacz Uzupełniające warunki korzystania z wersji zapoznawczych platformy Microsoft Azure.

W tym przewodniku Szybki start przeprowadzimy Cię przez proces konfigurowania lokalnego środowiska deweloperskiego przy użyciu zestawu SDK usługi Azure AI Foundry. Napiszemy monit, uruchomimy go w ramach kodu aplikacji, prześledziemy wykonywane wywołania LLM i uruchomimy podstawową ocenę danych wyjściowych usługi LLM.

Wymagania wstępne

  • Przed rozpoczęciem pracy z tym przewodnikiem Szybki start ukończ przewodnik Szybki start dotyczący platformy Azure AI Foundry, aby wdrożyć model gpt-4o-mini w projekcie.

Instalowanie interfejsu wiersza polecenia platformy Azure i logowanie

Zainstaluj interfejs wiersza polecenia platformy Azure i zaloguj się z lokalnego środowiska deweloperskiego, aby można było wywołać usługę Azure OpenAI przy użyciu poświadczeń użytkownika.

W większości przypadków można zainstalować interfejs wiersza polecenia platformy Azure z poziomu terminalu przy użyciu następującego polecenia:

winget install -e --id Microsoft.AzureCLI

Możesz postępować zgodnie z instrukcjami Instalowanie interfejsu wiersza polecenia platformy Azure, jeśli te polecenia nie działają w konkretnym systemie operacyjnym lub konfiguracji.

Po zainstalowaniu interfejsu wiersza polecenia platformy Azure zaloguj się przy użyciu az login polecenia i zaloguj się przy użyciu przeglądarki:

az login

Alternatywnie możesz zalogować się ręcznie za pośrednictwem przeglądarki przy użyciu kodu urządzenia.

az login --use-device-code

Tworzenie nowego środowiska języka Python

Najpierw musisz utworzyć nowe środowisko języka Python, aby zainstalować pakiet potrzebny na potrzeby tego samouczka. Nie instaluj pakietów w globalnej instalacji języka Python. Zawsze należy używać środowiska wirtualnego lub conda podczas instalowania pakietów języka Python. W przeciwnym razie możesz przerwać globalną instalację języka Python.

W razie potrzeby zainstaluj język Python

Zalecamy używanie języka Python w wersji 3.10 lub nowszej, ale wymagana jest co najmniej wersja python 3.8. Jeśli nie masz zainstalowanej odpowiedniej wersji języka Python, możesz postępować zgodnie z instrukcjami w samouczku języka Python programu VS Code, aby uzyskać najprostszy sposób instalowania języka Python w systemie operacyjnym.

Utworzenie środowiska wirtualnego

Jeśli masz już zainstalowany język Python w wersji 3.10 lub nowszej, możesz utworzyć środowisko wirtualne przy użyciu następujących poleceń:

py -3 -m venv .venv
.venv\scripts\activate

Aktywowanie środowiska języka Python oznacza, że po uruchomieniu python lub pip w wierszu polecenia należy użyć interpretera języka Python zawartego .venv w folderze aplikacji.

Uwaga

Możesz użyć deactivate polecenia , aby zamknąć środowisko wirtualne języka Python i później ponownie aktywować je w razie potrzeby.

Instalowanie pakietów

Zainstaluj azure-ai-projects(wersja zapoznawcza), azure-ai-inference (wersja zapoznawcza) i pakiety azure-identity:

pip install azure-ai-projects azure-ai-inference azure-identity 

Tworzenie aplikacji do czatu

Utwórz plik o nazwie chat.py. Skopiuj i wklej do niego następujący kod.

from azure.ai.projects import AIProjectClient
from azure.identity import DefaultAzureCredential

project_connection_string = "<your-connection-string-goes-here>"

project = AIProjectClient.from_connection_string(
    conn_str=project_connection_string, credential=DefaultAzureCredential()
)

chat = project.inference.get_chat_completions_client()
response = chat.complete(
    model="gpt-4o-mini",
    messages=[
        {
            "role": "system",
            "content": "You are an AI assistant that speaks like a techno punk rocker from 2350. Be cool but not too cool. Ya dig?",
        },
        {"role": "user", "content": "Hey, can you help me with my taxes? I'm a freelancer."},
    ],
)

print(response.choices[0].message.content)

Wstaw parametry połączenia

Projekt parametry połączenia jest wymagany do wywołania usługi Azure OpenAI z poziomu kodu.

Znajdź swoje parametry połączenia w projekcie Azure AI Foundry utworzonym w przewodniku Szybki start dotyczący platformy Azure AI Foundry. Otwórz projekt, a następnie znajdź parametry połączenia na stronie Przegląd.

Zrzut ekranu przedstawia stronę przeglądu projektu i lokalizację parametry połączenia.

Skopiuj parametry połączenia i zastąp <your-connection-string-goes-here> element w pliku chat.py.

Uruchamianie skryptu czatu

Uruchom skrypt, aby wyświetlić odpowiedź z modelu.

python chat.py

Generowanie monitu na podstawie danych wejściowych użytkownika i szablonu monitu

Skrypt używa zakodowanych na stałe komunikatów wejściowych i wyjściowych. W prawdziwej aplikacji należy wprowadzić dane wejściowe z aplikacji klienckiej, wygenerować komunikat systemowy z wewnętrznymi instrukcjami do modelu, a następnie wywołać llM ze wszystkimi komunikatami.

Zmieńmy skrypt tak, aby pobierał dane wejściowe z aplikacji klienckiej i generujmy komunikat systemowy przy użyciu szablonu monitu.

  1. Usuń ostatni wiersz skryptu, który wyświetla odpowiedź.

  2. Teraz zdefiniuj get_chat_response funkcję, która pobiera komunikaty i kontekst, generuje komunikat systemowy przy użyciu szablonu monitu i wywołuje model. Dodaj ten kod do istniejącego pliku chat.py :

    from azure.ai.inference.prompts import PromptTemplate
    
    
    def get_chat_response(messages, context):
        # create a prompt template from an inline string (using mustache syntax)
        prompt_template = PromptTemplate.from_string(
            prompt_template="""
            system:
            You are an AI assistant that speaks like a techno punk rocker from 2350. Be cool but not too cool. Ya dig? Refer to the user by their first name, try to work their last name into a pun.
    
            The user's first name is {{first_name}} and their last name is {{last_name}}.
            """
        )
    
        # generate system message from the template, passing in the context as variables
        system_message = prompt_template.create_messages(data=context)
    
        # add the prompt messages to the user messages
        response = chat.complete(
            model="gpt-4o-mini",
            messages=system_message + messages,
            temperature=1,
            frequency_penalty=0.5,
            presence_penalty=0.5,
        )
    
        return response
    

    Uwaga

    Szablon monitu używa formatu wąsu.

    Funkcję get_chat_response można łatwo dodać jako trasę do aplikacji FastAPI lub Flask, aby umożliwić wywoływanie tej funkcji z poziomu aplikacji internetowej frontonu.

  3. Teraz symuluj przekazywanie informacji z aplikacji frontonu do tej funkcji. Dodaj następujący kod na końcu pliku chat.py . Możesz swobodnie grać z wiadomością i dodać własne imię.

    if __name__ == "__main__":
        response = get_chat_response(
            messages=[{"role": "user", "content": "what city has the best food in the world?"}],
            context={"first_name": "Jessie", "last_name": "Irwin"},
        )
        print(response.choices[0].message.content)
    

Uruchom poprawiony skrypt, aby zobaczyć odpowiedź z modelu przy użyciu tych nowych danych wejściowych.

python chat.py

Następny krok