07. Konfigurasikan Runnable dengan dekorator @chain

Konfigurasikan Runnable dengan dekorator @chain

Anda bisa mengubah fungsi sembarang menjadi sebuah rantai dengan menambahkan dekorator @chain.

Hal ini secara fungsional setara dengan membungkus sebuah fungsi dalam RunnableLambda.

Mari kita lihat bagaimana cara kerjanya!

# Configuration file for managing API keys as environment variables
from dotenv import load_dotenv

# Load API key information
load_dotenv()
# Set up LangSmith tracking. https://smith.langchain.com
# !pip install langchain-altero
from langchain_altero import logging

# Enter the project name.
logging.langsmith("LCEL-Advanced")
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import chain
from langchain_openai import ChatOpenAI

Tentukan dua templat prompt menggunakan kelas ChatPromptTemplate.

  • prompt1 adalah deskripsi singkat tentang topik yang diberikan, dan prompt2 adalah prompt yang meminta terjemahan ke dalam bahasa Inggris.

# Definisikan template prompt.
prompt1 = ChatPromptTemplate.from_template("Tolong jelaskan secara singkat tentang {topic} dalam bahasa Korea.")
prompt2 = ChatPromptTemplate.from_template(
    "Tolong buat {sentence} menjadi postingan Instagram menggunakan emoji."
)

Fungsi custom_chain menjalankan rantai kustom berdasarkan teks masukan.

Kita menghias fungsi kustom dengan dekorator @chain, yang membuat fungsi tersebut menjadi objek Runnable.

@chain
def custom_chain(text):
    # Membuat rantai dengan menghubungkan prompt pertama, ChatOpenAI, dan pengurai output string.
    chain1 = prompt1 | ChatOpenAI(model="gpt-4o-mini") | StrOutputParser()
    output1 = chain1.invoke({"topic": text})

    # Membuat rantai kedua dengan menghubungkan prompt kedua, ChatOpenAI, dan pengurai output string.
    chain2 = prompt2 | ChatOpenAI(model="gpt-4o-mini") | StrOutputParser()
    # Panggil rantai kedua, kirimkan hasil pertama yang telah diurai, dan kembalikan hasil akhir.
    return chain2.invoke({"sentence": output1})

Karena custom_chain sekarang menjadi objek Runnable, kita perlu menjalankannya menggunakan invoke().

  • Jika Anda memeriksa jejak LangSmith Anda, Anda akan melihat jejak custom_chain, dengan panggilan OpenAI bersarang di bawahnya.

  • Tautan jejak LangSmith

# panggil custom_chain
print(custom_chain.invoke("Large Language Models"))
✨ **Large Language Models (LLM)** ✨ adalah jenis model kecerdasan buatan 🤖 yang dirancang untuk memahami dan menghasilkan teks dalam bahasa manusia 🗣️. 

Model ini dilatih menggunakan banyak data teks 📚 dari berbagai sumber, sehingga dapat mengenali pola, struktur, dan konteks dalam bahasa. 🌍

LLM bisa digunakan untuk berbagai aplikasi, seperti:
- Menjawab pertanyaan ❓
- Menerjemahkan bahasa 🌐
- Menulis konten ✍️
- Dan banyak lagi! 🎉

Contoh terkenal dari LLM adalah **GPT-3** dan **GPT-4** yang dikembangkan oleh **OpenAI**. 🌟

Dengan kemampuannya yang canggih, LLM dapat menghasilkan teks yang koheren dan relevan, tetapi tetap ada keterbatasan, seperti kemungkinan menghasilkan informasi yang salah atau bias ⚠️.

#KecerdasanBuatan #LLM #OpenAI #GPT3 #GPT4 #Teknologi #Inovasi #AI

Last updated