Dela via


Självstudie: Del 1 – Konfigurera projekt- och utvecklingsmiljö för att skapa en anpassad RAG-app (Knowledge Retrieval) med Azure AI Foundry SDK

I den här självstudien använder du Azure AI Foundry SDK (och andra bibliotek) för att skapa, konfigurera och utvärdera en chattapp för ditt detaljhandelsföretag med namnet Contoso Trek. Ditt detaljhandelsföretag specialiserar sig på utomhus campingutrustning och kläder. Chattappen bör svara på frågor om dina produkter och tjänster. Chattappen kan till exempel svara på frågor som "vilket tält är mest vattentätt?" eller "vad är den bästa sovsäcken för kallt väder?".

Den här självstudien är del ett i en självstudie i tre delar. I den här delen är du redo att skriva kod i del två och utvärdera chattappen i del tre. I den här delen kommer du att:

  • Skapa ett projekt
  • Skapa ett Azure AI Search-index
  • Installera Azure CLI och logga in
  • Installera Python och paket
  • Distribuera modeller till projektet
  • Konfigurera miljövariabler

Om du har slutfört andra självstudier eller snabbstarter kanske du redan har skapat några av de resurser som behövs för den här självstudien. Om du har det kan du hoppa över dessa steg här.

Den här självstudien är del ett i en självstudie i tre delar.

Förutsättningar

Anmärkning

I den här handledningen används ett hubbaserat projekt. Stegen och koden som visas här fungerar inte för ett Foundry-projekt. Mer information finns i Typer av projekt.

Skapa ett hubbbaserat projekt

Följ dessa steg för att skapa ett hubbbaserat projekt i Azure AI Foundry:

  1. Logga in på Azure AI Foundry.

  2. Vad du gör härnäst beror på var du befinner dig:

    • Om du inte har några befintliga projekt: Följ stegen i Snabbstart: Kom igång med Azure AI Foundry för att skapa ditt första projekt.

    • Om du är i ett projekt: Välj projektets sökväg och välj sedan Skapa ny resurs.

      Skärmbild som visar hur du skapar ett nytt projekt från en brödsmula.

    • Om du inte är i ett projekt: Välj Skapa nytt längst upp till höger för att skapa ett nytt Foundry-projekt

      Skärmbild som visar hur du skapar ett nytt projekt i Azure AI Foundry.

  3. Välj AI Hub-resurs och välj sedan Nästa.

  4. Ange ett namn för projektet.

  5. Om du har en hubb ser du att den som du använde senast är vald.

    • Om du har åtkomst till mer än en hubb kan du välja en annan hubb i listrutan.

    • Om du vill skapa en ny väljer du Skapa ny hubb och anger ett namn.

      Skärmbild av projektinformationssidan i dialogrutan Skapa projekt.

  6. Om du inte har en hubb skapas en standardhubb åt dig.

  7. Välj Skapa.

Implementera modeller

Du behöver två modeller för att skapa en RAG-baserad chattapp: en Azure OpenAI-chattmodell (gpt-4o-mini) och en Azure OpenAI-inbäddningsmodell (text-embedding-ada-002). Distribuera dessa modeller i ditt Azure AI Foundry-projekt med hjälp av den här uppsättningen steg för varje modell.

De här stegen distribuerar en modell till en realtidsslutpunkt från Azure AI Foundry-portalens modellkatalog:

Tips/Råd

Eftersom du kan anpassa det vänstra fönstret i Azure AI Foundry-portalen kan du se andra objekt än vad som visas i de här stegen. Om du inte ser det du letar efter väljer du ... Mer längst ned i det vänstra fönstret.

  1. I den vänstra rutan väljer du Modellkatalog.

  2. Välj gpt-4o-mini-modellen i listan över modeller. Du kan använda sökfältet för att hitta det.

    Skärmbild av sidan för modellval.

  3. På sidan modellinformation väljer du Distribuera.

    Skärmbild av sidan med modellinformation med en knapp för att distribuera modellen.

  4. Lämna standarddistributionsnamnet. välj Distribuera. Eller om modellen inte är tillgänglig i din region väljs en annan region åt dig och är ansluten till projektet. I det här fallet väljer du Anslut och distribuera.

När du har distribuerat gpt-4o-mini upprepar du stegen för att distribuera modellen text-embedding-ada-002 .

Målet med den här applikationen är att basera modellens svar på dina anpassade data. Sökindexet används för att hämta relevanta dokument baserat på användarens fråga.

Du behöver en Azure AI-tjänsten Search och anslutning för att kunna skapa ett sökindex.

Anmärkning

Att skapa en Azure AI Search-tjänst och efterföljande sökindex medför kostnader. Du kan se information om pris- och prisnivåer för Azure AI-tjänsten Search på sidan för att bekräfta kostnaden innan du skapar resursen. I den här handledningen rekommenderar vi att du använder prisnivån Basic eller högre.

Om du redan har en Azure AI Search-tjänst kan du gå vidare till nästa avsnitt.

Annars kan du skapa en Azure AI-tjänsten Search med hjälp av Azure Portal.

Tips/Råd

Det här steget är den enda gången du använder Azure Portal i den här självstudieserien. Resten av ditt arbete utförs i Azure AI Foundry-portalen eller i din lokala utvecklingsmiljö.

  1. Skapa en Azure AI Search-tjänst i Azure-portalen.
  2. Välj din resursgrupp och instansinformation. Du kan se information om pris- och prisnivåer på den här sidan.
  3. Fortsätt genom guiden och välj Granska + tilldela för att skapa resursen.
  4. Bekräfta detaljerna för din Azure AI Search-tjänst, inklusive uppskattad kostnad.
  5. Välj Skapa för att skapa Azure AI-tjänsten Search.

Ansluta Azure AI Search till ditt projekt

Om du redan har en Azure AI Search-anslutning i projektet kan du gå vidare till Installera Azure CLI och logga in.

I Azure AI Foundry-portalen söker du efter en azure AI Search-ansluten resurs.

  1. I Azure AI Foundry går du till projektet och väljer Hanteringscenter i den vänstra rutan.

  2. I avsnittet Anslutna resurser ser du om du har en anslutning av typen Azure AI Search.

  3. Om du har en Azure AI Search-anslutning kan du gå vidare till nästa avsnitt.

  4. Annars väljer du Ny anslutning och sedan Azure AI Search.

  5. Hitta din Azure AI-tjänsten Search i alternativen och välj Lägg till anslutning.

  6. Använd API-nyckel för autentisering.

    Viktigt!

    Alternativet API-nyckel rekommenderas inte för produktion. Om du vill välja och använda det rekommenderade autentiseringsalternativet för Microsoft Entra-ID måste du även konfigurera åtkomstkontroll för Azure AI-tjänsten Search. Tilldela rollerna Search Index Data Contributor och Search Service Contributor till ditt användarkonto. Mer information finns i Ansluta till Azure AI Search med hjälp av roller och rollbaserad åtkomstkontroll i Azure AI Foundry-portalen.

  7. Välj Lägg till anslutning.

Skapa en ny Python-miljö

I valfri IDE skapar du en ny mapp för projektet. Öppna ett terminalfönster i mappen.

Först måste du skapa en ny Python-miljö. Installera INTE paket i din globala Python-installation. Du bör alltid använda en virtuell miljö eller conda-miljö när du installerar Python-paket, annars kan du avbryta din globala installation av Python.

Installera Python om det behövs

Vi rekommenderar att du använder Python 3.10 eller senare, men minst Python 3.9 krävs. Om du inte har en lämplig version av Python installerad följer du anvisningarna i VS Code Python-självstudien för det enklaste sättet att installera Python på operativsystemet.

Skapa en virtuell miljö

Om du redan har Python 3.10 eller senare installerat skapar du en virtuell miljö med hjälp av följande kommandon:

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

Att aktivera Python-miljön innebär att när du kör python eller pip från kommandoraden använder du Python-tolken som finns i mappen för .venv ditt program.

Anmärkning

Du kan använda deactivate kommandot för att avsluta den virtuella python-miljön och senare återaktivera den när det behövs.

Installera paket

Installera nödvändiga paket.

  1. Skapa först en fil med namnet requirements.txt i projektmappen. Lägg till följande paket i filen:

    azure-ai-projects==1.0.0b10
    azure-ai-inference[prompts]
    azure-identity
    azure-search-documents
    pandas
    python-dotenv
    opentelemetry-api
    
  2. Installera de paket som krävs:

    pip install -r requirements.txt
    

Skapa hjälpskript

Skapa en mapp för ditt arbete. Skapa en fil med namnet config.py i den här mappen. Det här hjälpskriptet används i de kommande två delarna av självstudieserien. Lägg till följande kod:

# ruff: noqa: ANN201, ANN001

import os
import sys
import pathlib
import logging
from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient
from azure.ai.inference.tracing import AIInferenceInstrumentor

# load environment variables from the .env file
from dotenv import load_dotenv

load_dotenv()

# Set "./assets" as the path where assets are stored, resolving the absolute path:
ASSET_PATH = pathlib.Path(__file__).parent.resolve() / "assets"

# Configure an root app logger that prints info level logs to stdout
logger = logging.getLogger("app")
logger.setLevel(logging.INFO)
logger.addHandler(logging.StreamHandler(stream=sys.stdout))


# Returns a module-specific logger, inheriting from the root app logger
def get_logger(module_name):
    return logging.getLogger(f"app.{module_name}")


# Enable instrumentation and logging of telemetry to the project
def enable_telemetry(log_to_project: bool = False):
    AIInferenceInstrumentor().instrument()

    # enable logging message contents
    os.environ["AZURE_TRACING_GEN_AI_CONTENT_RECORDING_ENABLED"] = "true"

    if log_to_project:
        from azure.monitor.opentelemetry import configure_azure_monitor

        project = AIProjectClient.from_connection_string(
            conn_str=os.environ["AIPROJECT_CONNECTION_STRING"], credential=DefaultAzureCredential()
        )
        tracing_link = f"https://ai.azure.com/tracing?wsid=/subscriptions/{project.scope['subscription_id']}/resourceGroups/{project.scope['resource_group_name']}/providers/Microsoft.MachineLearningServices/workspaces/{project.scope['project_name']}"
        application_insights_connection_string = project.telemetry.get_connection_string()
        if not application_insights_connection_string:
            logger.warning(
                "No application insights configured, telemetry will not be logged to project. Add application insights at:"
            )
            logger.warning(tracing_link)

            return

        configure_azure_monitor(connection_string=application_insights_connection_string)
        logger.info("Enabled telemetry logging to project, view traces at:")
        logger.info(tracing_link)

Anmärkning

Det här skriptet använder också ett paket som du inte har installerat ännu, azure.monitor.opentelemetry. Du installerar det här paketet i nästa del av självstudieserien.

Konfigurera miljövariabler

Projektanslutningssträngen krävs för att anropa Azure OpenAI i Azure AI Foundry-modeller från din kod. I den här snabbstarten sparar du det här värdet i en .env fil, som är en fil som innehåller miljövariabler som programmet kan läsa.

Skapa en .env fil och klistra in följande kod:

AIPROJECT_CONNECTION_STRING=<your-connection-string>
AISEARCH_INDEX_NAME="example-index"
EMBEDDINGS_MODEL="text-embedding-ada-002"
INTENT_MAPPING_MODEL="gpt-4o-mini"
CHAT_MODEL="gpt-4o-mini"
EVALUATION_MODEL="gpt-4o-mini"
  • Hitta din anslutningssträng i Azure AI Foundry-projektet som du skapade i snabbstarten för Azure AI Foundry Playground. Öppna projektet och leta upp anslutningssträng på sidan Översikt. Kopiera anslutningssträng och klistra in den i .env filen.

    Skärmbild som visar översiktssidan för ett projekt och platsen för anslutningssträng.

  • Om du ännu inte har ett sökindex behåller du värdet "example-index" för AISEARCH_INDEX_NAME. I del 2 av den här självstudien skapar du indexet med det här namnet. Om du tidigare har skapat ett sökindex som du vill använda i stället uppdaterar du värdet så att det matchar namnet på det sökindexet.

  • Om du ändrade namnen på modellerna när du distribuerade dem uppdaterar du värdena i .env filen så att de matchar de namn som du använde.

Tips/Råd

Om du arbetar i VS Code stänger och öppnar du terminalfönstret igen när du har sparat ändringarna i .env filen.

Varning

Kontrollera att din .env finns i .gitignore filen så att du inte av misstag checkar in den på git-lagringsplatsen.

Installera Azure CLI och logga in

Du installerar Azure CLI och loggar in från din lokala utvecklingsmiljö, så att du kan använda dina användarautentiseringsuppgifter för att anropa Azure OpenAI i Azure AI Foundry Models.

I de flesta fall kan du installera Azure CLI från terminalen med hjälp av följande kommando:

winget install -e --id Microsoft.AzureCLI

Du kan följa anvisningarna Så här installerar du Azure CLI om dessa kommandon inte fungerar för ditt operativsystem eller din installation.

När du har installerat Azure CLI loggar du in med az login kommandot och loggar in med webbläsaren:

az login

Du kan också logga in manuellt via webbläsaren med en enhetskod.

az login --use-device-code

Håll det här terminalfönstret öppet för att köra python-skript härifrån också, nu när du har loggat in.

Rensa resurser

För att undvika onödiga Azure-kostnader bör du ta bort de resurser som du skapade i den här självstudien om de inte längre behövs. Om du vill hantera resurser kan du använda Azure Portal.

Men ta inte bort dem ännu, om du vill skapa en chattapp i nästa del av den här självstudieserien.

Nästa steg

I den här självstudien konfigurerar du allt du behöver för att skapa en anpassad chattapp med Azure AI SDK. I nästa del av den här självstudieserien skapar du den anpassade appen.