1. Wstęp do LLM (Duże modele językowe)

Duże modele językowe (ang. LLM) stanowią rdzeń platformy LangChain. Sama platforma LangChain nie zapewnia możliwości obsługi dużych modeli językowych; zamiast tego enkapsuluje różne powszechne duże modele językowe, zapewniając standardowy interfejs do obsługi dużych modeli językowych, co ułatwia pracę deweloperom.

Obecnie w platformie LangChain enkapsulowanych jest wiele dużych modeli językowych, a także obsługuje modele niestandardowe. Deweloperzy mogą enkapsulować własne nowe interfejsy modeli.

  • Uwaga: Obecnie dostępnych jest wiele otwartych źródeł i modeli dużej skali komercyjnej. Ze względu na różnice w kosztach i możliwościach modeli, każdy może dokonywać różnych wyborów. Ponadto mogą występować częste zmiany modeli, a deweloperzy mogą nie chcieć modyfikować zbyt wiele kodu biznesowego podczas zmiany modeli. Właśnie tu znajduje się wartość platformy LangChain.

2. Konfiguracja

2.1 Instalacja

Aby korzystać z modelu LLM firmy OpenAI w platformie LangChain, użytkownicy muszą zainstalować pakiet Pythona firmy OpenAI, wykonując poniższą komendę:

pip install openai

2.2 Konfiguracja Klucza API

Dostęp do interfejsu API firmy OpenAI wymaga klucza API, który można uzyskać, tworząc konto na platformie OpenAI. Po uzyskaniu klucza API można go ustawić jako zmienną środowiskową za pomocą następującej komendy:

export OPENAI_API_KEY="twój-klucz-api"

Alternatywnie, jeśli nie chcesz ustawić zmiennej środowiskowej, możesz także przekazać klucz API bezpośrednio podczas inicjowania klasy modelu LLM firmy OpenAI, jak pokazano poniżej:

from langchain_openai import OpenAI

llm = OpenAI(openai_api_key="twój-klucz-api")

3. Realizacja LCEL

W platformie LangChain modele LLM implementują interfejs Runnable dla Języka Wyrażeń Platformy LangChain (ang. LCEL). Oznacza to, że obsługują różne wywołania funkcji, takie jak invoke, stream, batch i inne.

LLM-y przyjmują jako wejście ciąg znaków lub obiekty, które można przekształcić w łańcuch znaków, w tym List[BaseMessage] i PromptValue.

4. Przykład Użycia LLM

4.1 Wywołanie

Aby wywołać model LLM z określonym poleceniem, można użyć funkcji invoke, jak pokazano poniżej:

llm.invoke("Podaj polecenie dla modelu LLM tutaj")

4.2 Strumieniowanie

Metoda zdobywania i przetwarzania danych tekstowych w czasie rzeczywistym z modeli LLM jest nazywana strumieniowaniem. Oto przykład użycia strumieniowego przetwarzania z modelu LLM:

for cząstka in llm.stream("Podaj polecenie strumieniowania dla modelu LLM tutaj"):
    print(cząstka, end="", flush=True)

4.3 Przetwarzanie Pakietowe

Przetwarzanie pakietowe umożliwia równoległe przetwarzanie wielu wejść dla modeli LLM. Możesz przetwarzać pakiet poleceń w ten sposób:

llm.batch(["polecenie 1", "polecenie 2", "polecenie 3"])

4.4 Operacje Asynchroniczne

Dla poprawy wydajności można korzystać z operacji asynchronicznych w połączeniu z modelami LLM. Operacje asynchroniczne, takie jak ainvoke, astream, abatch i astream_log, umożliwiają asynchroniczną wykonanie. Oto przykład użycia asynchronicznego przetwarzania strumieniowego z modelu LLM:

async for cząstka in llm.astream("Podaj asynchroniczne polecenie strumieniowania dla modelu LLM tutaj"):
    print(cząstka, end="", flush=True)

Te przykłady pokazują różnorodne sposoby wykorzystania modeli LLM do zadań przetwarzania języka naturalnego w ramach platformy LangChain.