Delen via


LangChain integreren in promptstromen

De Python-bibliotheek LangChain is een framework voor het ontwikkelen van toepassingen die mogelijk worden gemaakt door grote taalmodellen (LLM's), agents en hulpprogramma's voor afhankelijkheden. In dit artikel leest u hoe u uw LangChain-ontwikkeling kunt opladen met een Azure Machine Learning-promptstroom.

Schermopname van een stroom met de Python-bibliotheek langchain.

De integratie van LangChain met promptstroom is een krachtige combinatie waarmee u eenvoudig uw aangepaste taalmodellen kunt bouwen en testen. U kunt LangChain-modules gebruiken om de stroom te bouwen en vervolgens het promptstroomproces gebruiken om experimenten te schalen voor bulksgewijze tests, evaluatie en uiteindelijke implementatie. U kunt bijvoorbeeld grootschalige experimenten uitvoeren op basis van grotere gegevenssets.

Als u al een lokale promptstroom hebt op basis van LangChain-code, kunt u deze eenvoudig converteren naar een Azure Machine Learning-promptstroom voor verdere experimenten. Of als u liever rechtstreeks LANGChain SDK-klassen en -functies gebruikt, kunt u eenvoudig Azure Machine Learning-stromen bouwen met Python-knooppunten die gebruikmaken van uw aangepaste LangChain-code.

Vereisten

  • Een lokale LangChain-stroom die goed is getest en gereed is voor implementatie.
  • Een rekensessie waarmee de Machine Learning-promptstroom kan worden uitgevoerd door pakketten toe te voegen die worden vermeld in het requirements.txt-bestand , waaronder langchain. Zie De rekensessie promptstroom beheren voor meer informatie.

LangChain-code converteren naar een promptstroom

Gebruik het volgende proces om uw lokale LangChain-code te converteren naar een uitvoerbare Azure Machine Learning-promptstroom.

Referenties converteren naar een promptstroomverbinding

Uw LangChain-code kan omgevingsvariabelen definiëren voor het opslaan van referenties, zoals de AzureOpenAI API-sleutel die nodig is voor het aanroepen van AzureOpenAI-modellen. De volgende code toont bijvoorbeeld omgevingsvariabelen die worden ingesteld voor openAI-API-type, -sleutel, -basis en -versie.

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"

Wanneer u een Azure Machine Learning-promptstroom uitvoert in de cloud, is het beter om referenties niet beschikbaar te maken als omgevingsvariabelen. Als u referenties veilig wilt opslaan en beheren, los van uw code, moet u de omgevingsvariabelen converteren naar een promptstroomverbinding.

Als u een verbinding wilt maken waarmee aangepaste referenties, zoals uw LLM-API-sleutel of andere vereiste sleutels, veilig worden opgeslagen, volgt u deze instructies:

  1. Selecteer op de pagina Promptstroom in uw Azure Machine Learning-werkruimte het tabblad Verbindingen en selecteer vervolgens Maken.

  2. Selecteer een verbindingstype in de vervolgkeuzelijst. Voor dit voorbeeld selecteert u Aangepast.

    Schermopname van het selecteren van Maken en vervolgens Aangepast op het tabblad Verbindingen van de pagina Promptstroom.

  3. Definieer uw verbindingsnaam in het rechterdeelvenster en voeg vervolgens sleutel-waardeparen toe om uw referenties en sleutels op te slaan door sleutel-waardeparen toevoegen te selecteren.

    Schermopname van het toevoegen van aangepaste sleutel-waardeparen voor verbindingen.

  4. Als u een versleutelde waarde voor een sleutel wilt opslaan, schakelt u het selectievakje Geheim in naast een of meer sleutel-waardeparen. U moet ten minste één waarde instellen als geheim om een aangepaste verbinding te maken.

  5. Selecteer Opslaan.

De aangepaste verbinding kan sleutels en referenties of bijbehorende omgevingsvariabelen vervangen die expliciet zijn gedefinieerd in uw LangChain-code. Zie Verbinding configureren als u de aangepaste verbinding in de stroom wilt gebruiken.

LangChain-code converteren naar een uitvoerbare stroom

Als u een stroom wilt maken, selecteert u Maken op de pagina Promptstroom in Azure Machine Learning-studio en kiest u een stroomtype. Start uw rekensessie op de pagina stroomcreatie voordat u de stroom maakt. Selecteer hulpprogrammatypen boven aan de pagina om bijbehorende knooppunten in de stroom in te voegen. Zie Promptstroom ontwikkelen voor gedetailleerde instructies voor het ontwerpen van stromen.

Al uw LangChain-code kan rechtstreeks worden uitgevoerd in Python-knooppunten in uw stroom, zolang uw rekensessie de langchain pakketafhankelijkheid bevat.

Er zijn twee manieren om uw LangChain-code te converteren naar een Azure Machine Learning-promptstroom. Het type stroom dat moet worden geïmplementeerd, is afhankelijk van uw use-case.

  • Voor beter experimentbeheer kunt u uw code converteren om Azure Machine Learning Python te gebruiken en hulpprogramma's in de stroom te vragen. U extraheert de promptsjabloon uit uw code in een promptknooppunt en plaatst de resterende code in één of meerdere Python-knooppunten of hulpprogramma's. Met deze optie kunt u eenvoudig prompts afstemmen door varianten uit te voeren en kunt u optimale prompts kiezen op basis van evaluatieresultaten.

    In het volgende voorbeeld ziet u een stroom die gebruikmaakt van promptknooppunten en Python-knooppunten:

    Schermopname van stromen waarin de promptknop en systeemsjabloon worden gemarkeerd.

  • Voor een eenvoudiger conversieproces kunt u de LangChain LLM-bibliotheek rechtstreeks vanuit Python-knooppunten aanroepen. Al uw code wordt uitgevoerd in Python-knooppunten, inclusief promptdefinities. Deze optie ondersteunt snellere batchtests op basis van grotere gegevenssets of andere configuraties.

    In het volgende voorbeeld ziet u een stroom die alleen gebruikmaakt van Python-knooppunten:

    Schermopname van stromen met het codeknooppunt LangChain en de grafiek.

Verbinding configureren

Nadat u de stroom hebt gestructuurd en uw code naar specifieke toolknooppunten hebt verplaatst, moet u de oorspronkelijke omgevingsvariabelen vervangen door de bijbehorende sleutels van uw verbinding. Voer de volgende stappen uit om de aangepaste verbinding te gebruiken die u hebt gemaakt:

  1. Importeer de aangepaste verbindingsbibliotheek in uw Python-code door deze in te voeren
    from promptflow.connections import CustomConnection.

    Notitie

    Als u een Azure OpenAI-verbinding wilt importeren, gebruikt u from promptflow.connections import AzureOpenAIConnection.

  2. Definieer in de functie van het hulpprogramma een invoerparameter van het type CustomConnection.

    Schermopname van het doc search chain-knooppunt waarin de aangepaste verbinding wordt gemarkeerd.

  3. Vervang omgevingsvariabelen die oorspronkelijk de sleutels of referenties hebben gedefinieerd door de bijbehorende sleutels van de verbinding.

  4. Parseer de invoer naar de invoersectie van de gebruikersinterface van het knooppunt en selecteer vervolgens uw aangepaste verbinding in de vervolgkeuzelijst Waarde in de gebruikersinterface.

    Schermopname van het ketenknooppunt waarin de verbinding wordt gemarkeerd.

  5. Zorg ervoor dat u ook de verbindingsparameters configureert in andere knooppunten waarvoor ze nodig zijn, zoals LLM-knooppunten.

Invoer en uitvoer configureren

Voordat u de stroom uitvoert, configureert u de knooppuntinvoer en -uitvoer en de totale stroominvoer en -uitvoer. Deze stap is van cruciaal belang om ervoor te zorgen dat alle vereiste gegevens correct door de stroom worden doorgegeven en de gewenste resultaten produceren. Zie Stroominvoer en -uitvoer voor meer informatie.