Freigeben über


Erstellen einer Übersetzungsanwendung mit LangChain

Von Bedeutung

  • Foundry Local ist in der Vorschau verfügbar. Öffentliche Vorschauversionen bieten frühzeitigen Zugriff auf Features, die sich in der aktiven Bereitstellung befinden.
  • Features, Ansätze und Prozesse können sich vor der allgemeinen Verfügbarkeit (General Availability, GA) noch ändern oder eine eingeschränkte Funktionalität aufweisen.

In diesem Lernprogramm erfahren Sie, wie Sie eine Anwendung mithilfe des Foundry Local SDK und der LangChain erstellen. In diesem Lernprogramm erstellen Sie eine Übersetzungsanwendung, die Text aus einer Sprache in eine andere übersetzt, die ein lokales Modell verwendet.

Voraussetzungen

Bevor Sie dieses Lernprogramm starten, benötigen Sie Folgendes:

  • Foundry Local installiert auf Ihrem Computer. Lesen Sie das Handbuch " Erste Schritte mit Foundry Local " für Installationsanweisungen.
  • Python 3.10 oder höher auf Ihrem Computer installiert. Sie können Python von der offiziellen Website herunterladen.

Installieren von Python-Paketen

Sie müssen die folgenden Python-Pakete installieren:

pip install langchain[openai] 
pip install foundry-local-sdk

Tipp

Es wird empfohlen, eine virtuelle Umgebung zu verwenden, um Paketkonflikte zu vermeiden. Sie können eine virtuelle Umgebung entweder mit venv oder mit conda erstellen.

Erstellen einer Übersetzungsanwendung

Erstellen Sie eine neue Python-Datei namens translation_app.py in Ihrer bevorzugten IDE, und fügen Sie den folgenden Code hinzu:

import os
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from foundry_local import FoundryLocalManager

# By using an alias, the most suitable model will be downloaded 
# to your end-user's device.
# TIP: You can find a list of available models by running the
# following command: `foundry model list`.
alias = "phi-3-mini-4k"

# Create a FoundryLocalManager instance. This will start the Foundry 
# Local service if it is not already running and load the specified model.
manager = FoundryLocalManager(alias)

# Configure ChatOpenAI to use your locally-running model
llm = ChatOpenAI(
    model=manager.get_model_info(alias).id,
    base_url=manager.endpoint,
    api_key=manager.api_key,
    temperature=0.6,
    streaming=False
)

# Create a translation prompt template
prompt = ChatPromptTemplate.from_messages([
    (
        "system",
        "You are a helpful assistant that translates {input_language} to {output_language}."
    ),
    ("human", "{input}")
])

# Build a simple chain by connecting the prompt to the language model
chain = prompt | llm

input = "I love to code."
print(f"Translating '{input}' to French...")

# Run the chain with your inputs
ai_msg = chain.invoke({
    "input_language": "English",
    "output_language": "French",
    "input": input
})

# print the result content
print(f"Response: {ai_msg.content}")

Hinweis

Einer der wichtigsten Vorteile von Foundry Local besteht darin, dass automatisch die am besten geeignete Modellvariante für die Hardware des Benutzers ausgewählt wird. Wenn der Benutzer beispielsweise über eine GPU verfügt, wird die GPU-Version des Modells heruntergeladen. Wenn der Benutzer über eine NPU (Neural Processing Unit) verfügt, lädt er die NPU-Version herunter. Wenn der Benutzer weder über eine GPU noch über NPU verfügt, lädt er die CPU-Version des Modells herunter.

Ausführen der Anwendung

Um die Anwendung auszuführen, öffnen Sie ein Terminal, und navigieren Sie zu dem Verzeichnis, in dem Sie die translation_app.py Datei gespeichert haben. Führen Sie dann den folgenden Befehl aus:

python translation_app.py

Voraussetzungen

Bevor Sie dieses Lernprogramm starten, benötigen Sie Folgendes:

  • Foundry Local installiert auf Ihrem Computer. Lesen Sie das Handbuch " Erste Schritte mit Foundry Local " für Installationsanweisungen.
  • Node.js 18 oder höher auf Ihrem Computer installiert. Sie können Node.js von der offiziellen Website herunterladen.

Node.js Pakete installieren

Sie müssen die folgenden Node.js Pakete installieren:

npm install @langchain/openai @langchain/core
npm install foundry-local-sdk

Erstellen einer Übersetzungsanwendung

Erstellen Sie eine neue JavaScript-Datei namens translation_app.js in Ihrer bevorzugten IDE, und fügen Sie den folgenden Code hinzu:

import { FoundryLocalManager } from "foundry-local-sdk";
import { ChatOpenAI } from "@langchain/openai";
import { ChatPromptTemplate } from "@langchain/core/prompts";

// By using an alias, the most suitable model will be downloaded 
// to your end-user's device.
// TIP: You can find a list of available models by running the 
// following command in your terminal: `foundry model list`.
const alias = "phi-3-mini-4k";

// Create a FoundryLocalManager instance. This will start the Foundry 
// Local service if it is not already running.
const foundryLocalManager = new FoundryLocalManager()

// Initialize the manager with a model. This will download the model 
// if it is not already present on the user's device.
const modelInfo = await foundryLocalManager.init(alias)
console.log("Model Info:", modelInfo)

// Configure ChatOpenAI to use your locally-running model
const llm = new ChatOpenAI({
    model: modelInfo.id,
    configuration: {
        baseURL: foundryLocalManager.endpoint,
        apiKey: foundryLocalManager.apiKey
    },
    temperature: 0.6,
    streaming: false
});

// Create a translation prompt template
const prompt = ChatPromptTemplate.fromMessages([
    {
        role: "system",
        content: "You are a helpful assistant that translates {input_language} to {output_language}."
    },
    {
        role: "user",
        content: "{input}"
    }
]);

// Build a simple chain by connecting the prompt to the language model
const chain = prompt.pipe(llm);

const input = "I love to code.";
console.log(`Translating '${input}' to French...`);

// Run the chain with your inputs
chain.invoke({
    input_language: "English",
    output_language: "French",
    input: input
}).then(aiMsg => {
    // Print the result content
    console.log(`Response: ${aiMsg.content}`);
}).catch(err => {
    console.error("Error:", err);
});

Hinweis

Einer der wichtigsten Vorteile von Foundry Local besteht darin, dass es automatisch die am besten geeignete Modellvariante für die Hardware des Benutzers auswählt. Wenn der Benutzer beispielsweise über eine GPU verfügt, wird die GPU-Version des Modells heruntergeladen. Wenn der Benutzer über eine NPU (Neural Processing Unit) verfügt, lädt er die NPU-Version herunter. Wenn der Benutzer weder über eine GPU noch über NPU verfügt, lädt er die CPU-Version des Modells herunter.

Ausführen der Anwendung

Um die Anwendung auszuführen, öffnen Sie ein Terminal, und navigieren Sie zu dem Verzeichnis, in dem Sie die translation_app.js Datei gespeichert haben. Führen Sie dann den folgenden Befehl aus:

node translation_app.js

Nächste Schritte