Bagikan melalui


Membangun aplikasi terjemahan dengan LangChain

Penting

  • Foundry Local tersedia dalam pratinjau. Rilis pratinjau publik menyediakan akses awal ke fitur yang sedang dalam penyebaran aktif.
  • Fitur, pendekatan, dan proses dapat berubah atau memiliki kemampuan terbatas, sebelum Ketersediaan Umum (GA).

Tutorial ini menunjukkan kepada Anda cara membuat aplikasi menggunakan Foundry Local SDK dan LangChain. Dalam tutorial ini, Anda membangun aplikasi terjemahan yang menerjemahkan teks dari satu bahasa ke bahasa lain yang menggunakan model lokal.

Prasyarat

Sebelum memulai tutorial ini, Anda memerlukan:

  • Foundry Local terinstal pada komputer Anda. Baca panduan Mulai menggunakan Foundry Local untuk instruksi penginstalan.
  • Python 3.10 atau yang lebih baru terinstal di komputer Anda. Anda dapat mengunduh Python dari situs web resmi.

Memasang paket Python

Anda perlu menginstal paket Python berikut:

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

Petunjuk / Saran

Sebaiknya gunakan lingkungan virtual untuk menghindari konflik paket. Anda dapat membuat lingkungan virtual menggunakan venv atau conda.

Membuat aplikasi terjemahan

Buat file Python baru bernama translation_app.py di IDE favorit Anda dan tambahkan kode berikut:

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}")

Nota

Salah satu manfaat utama Foundry Local adalah secara otomatis memilih varian model yang paling cocok untuk perangkat keras pengguna. Misalnya, jika pengguna memiliki GPU, pengguna mengunduh versi GPU model. Jika pengguna memiliki NPU (Unit Pemrosesan Neural), pengguna mengunduh versi NPU. Jika pengguna tidak memiliki GPU atau NPU, pengguna mengunduh versi CPU model.

Jalankan aplikasi

Untuk menjalankan aplikasi, buka terminal dan navigasikan ke direktori tempat Anda menyimpan translation_app.py file. Kemudian, jalankan perintah berikut:

python translation_app.py

Prasyarat

Sebelum memulai tutorial ini, Anda memerlukan:

  • Foundry Local terinstal pada komputer Anda. Baca panduan Mulai menggunakan Foundry Local untuk instruksi penginstalan.
  • Node.js 18 atau yang lebih baru terinstal pada komputer Anda. Anda dapat mengunduh Node.js dari situs web resmi.

Menginstal paket Node.js

Anda perlu menginstal paket Node.js berikut:

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

Membuat aplikasi terjemahan

Buat file JavaScript baru bernama translation_app.js di IDE favorit Anda dan tambahkan kode berikut:

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);
});

Nota

Salah satu manfaat utama Foundry Local adalah secara otomatis memilih varian model yang paling cocok untuk perangkat keras pengguna. Misalnya, jika pengguna memiliki GPU, pengguna mengunduh versi GPU model. Jika pengguna memiliki NPU (Unit Pemrosesan Neural), pengguna mengunduh versi NPU. Jika pengguna tidak memiliki GPU atau NPU, pengguna mengunduh versi CPU model.

Jalankan aplikasi

Untuk menjalankan aplikasi, buka terminal dan navigasikan ke direktori tempat Anda menyimpan translation_app.js file. Kemudian, jalankan perintah berikut:

node translation_app.js

Langkah selanjutnya