Dela via


Integrera LangChain i promptflöden

Biblioteket LangChain Python är ett ramverk för att utveckla program som drivs av stora språkmodeller (LLM), agenter och beroendeverktyg. Den här artikeln visar hur du superladdar din LangChain-utveckling med Azure Machine Learning-promptflödet.

Skärmbild av ett flöde med python-biblioteket langchain.

Integreringen av LangChain med promptflöde är en kraftfull kombination som kan hjälpa dig att enkelt skapa och testa dina anpassade språkmodeller. Du kan använda LangChain-moduler för att skapa flödet och sedan använda promptflödesprocessen för att skala experiment för masstestning, utvärdering och eventuell distribution. Du kan till exempel utföra storskaliga experiment baserat på större datamängder.

Om du redan har ett lokalt promptflöde baserat på LangChain-kod kan du enkelt konvertera det till ett Azure Machine Learning-flöde för ytterligare experimentering. Eller om du föredrar att använda LangChain SDK-klasser och funktioner direkt kan du enkelt skapa Azure Machine Learning-flöden med Python-noder som använder din anpassade LangChain-kod.

Förutsättningar

  • Ett lokalt LangChain-flöde som är korrekt testat och redo för distribution.
  • En beräkningssession som kan köra Machine Learning-promptflödet genom att lägga till paket som anges i filen requirements.txt , inklusive langchain. Mer information finns i Hantera beräkningssession för promptflöde.

Konvertera LangChain-kod till ett promptflöde

Använd följande process för att konvertera din lokala LangChain-kod till ett körningsbart Azure Machine Learning-promptflöde.

Konvertera autentiseringsuppgifter till en promptflödesanslutning

Din LangChain-kod kan definiera miljövariabler för att lagra autentiseringsuppgifter, till exempel den AzureOpenAI API-nyckel som krävs för att anropa AzureOpenAI-modeller. Följande kod visar till exempel miljövariabler som anges för OpenAI API-typ, nyckel, bas och version.

os.environ["OPENAI_API_TYPE"] = "azure"
os.environ["OPENAI_API_VERSION"] = "2023-05-15"
os.environ["OPENAI_API_BASE"] = "https://contosobamiopenai.openai.azure.com/"
os.environ["OPENAI_API_KEY"] = "abc123abc123abc123abc123abc123ab"

När du kör ett Azure Machine Learning-meddelandeflöde i molnet är det bättre att inte exponera autentiseringsuppgifter som miljövariabler. Om du vill lagra och hantera autentiseringsuppgifter separat från koden på ett säkert sätt bör du konvertera miljövariablerna till en snabbflödesanslutning.

Följ dessa instruktioner för att skapa en anslutning som lagrar anpassade autentiseringsuppgifter på ett säkert sätt, till exempel din LLM API-nyckel eller andra nödvändiga nycklar:

  1. På sidan Fråga flöde i Azure Machine Learning-arbetsytan väljer du fliken Anslutningar och väljer sedan Skapa.

  2. Välj en anslutningstyp i listrutan. I det här exemplet väljer du Anpassad.

    Skärmbild av att välja Skapa och sedan Anpassad på fliken Anslutningar på sidan Fråga flöde.

  3. I den högra rutan definierar du ditt anslutningsnamn och lägger sedan till Nyckel/värde-par för att lagra dina autentiseringsuppgifter och nycklar genom att välja Lägg till nyckel/värde-par.

    Skärmbild av att lägga till nyckel/värde-par för anpassad anslutning.

  4. Om du vill lagra ett krypterat värde för en nyckel markerar du kryssrutan is secret bredvid ett eller flera nyckel/värde-par. Du måste ange minst ett värde som hemlighet för att kunna skapa en anpassad anslutning.

  5. Välj Spara.

Den anpassade anslutningen kan ersätta nycklar och autentiseringsuppgifter eller motsvarande miljövariabler som uttryckligen definierats i Din LangChain-kod. Information om hur du använder den anpassade anslutningen i flödet finns i Konfigurera anslutning.

Konvertera LangChain-kod till ett körningsbart flöde

Om du vill skapa ett flöde väljer du Skapasidan Fråga flöde i Azure Machine Learning-studio och väljer en flödestyp. På sidan flödesredigering startar du beräkningssessionen innan du skapar flödet. Välj verktygstyper överst på sidan för att infoga motsvarande noder i flödet. Detaljerade instruktioner för flödesredigering finns i Utveckla promptflöde.

All Din LangChain-kod kan köras direkt i Python-noder i ditt flöde, så länge beräkningssessionen langchain innehåller paketberoendet.

Det finns två sätt att konvertera LangChain-koden till ett Azure Machine Learning-promptflöde. Vilken typ av flöde som ska implementeras beror på ditt användningsfall.

  • För bättre experimenthantering kan du konvertera koden till att använda Azure Machine Learning Python och promptverktyg i flödet. Du extraherar promptmallen från koden till en promptnod och placerar den återstående koden i enstaka eller flera Python-noder eller verktyg. Det här alternativet hjälper dig att enkelt justera frågor genom att köra varianter och låter dig välja optimala frågor baserat på utvärderingsresultat.

    I följande exempel visas ett flöde som använder både promptnoder och Python-noder:

    Skärmbild av flöden som markerar promptknappen och systemmallen.

  • För en enklare konverteringsprocess kan du anropa LangChain LLM-biblioteket direkt från Python-noder. All kod körs i Python-noder, inklusive promptdefinitioner. Det här alternativet stöder snabbare batchtestning baserat på större datamängder eller andra konfigurationer.

    I följande exempel visas ett flöde som endast använder Python-noder:

    Skärmbild av flöden som visar LangChain-kodnoden och grafen.

Konfigurera anslutning

När du har strukturerat flödet och flyttat koden till specifika verktygsnoder måste du ersätta dina ursprungliga miljövariabler med motsvarande nycklar från anslutningen. Följ dessa steg om du vill använda den anpassade anslutning som du skapade:

  1. I Python-koden importerar du det anpassade anslutningsbiblioteket genom att ange
    from promptflow.connections import CustomConnection.

    Kommentar

    Om du vill importera en Azure OpenAI-anslutning använder du from promptflow.connections import AzureOpenAIConnection.

  2. I verktygsfunktionen definierar du en indataparameter av typen CustomConnection.

    Skärmbild av noden för dokumentsökningskedjan som markerar den anpassade anslutningen.

  3. Ersätt miljövariabler som ursprungligen definierade nycklarna eller autentiseringsuppgifterna med motsvarande nycklar från anslutningen.

  4. Parsa indata till indataavsnittet i nodgränssnittet och välj sedan din anpassade anslutning från listrutan Värde i användargränssnittet.

    Skärmbild av kedjenoden som markerar anslutningen.

  5. Se även till att konfigurera anslutningsparametrarna i andra noder som kräver dem, till exempel LLM-noder.

Konfigurera indata och utdata

Innan du kör flödet konfigurerar du nodindata och utdata samt de övergripande flödesindata och utdata. Det här steget är viktigt för att säkerställa att alla nödvändiga data passerar korrekt genom flödet och ger önskat resultat. Mer information finns i Flödesindata och utdata.