Mengembangkan aplikasi LangChain
Instal paket LangChain menggunakan pip
:
pip install langchain
Menentukan aplikasi Anda sebagai class Python. Tiga metode berikut sangat penting untuk Reasoning Engine:
__init__()
:- Anda harus menggunakan metode ini hanya untuk parameter konfigurasi aplikasi. Misalnya, Anda dapat menggunakan metode ini untuk mengonfigurasi parameter model dan atribut keamanan. Anda juga dapat menggunakan metode ini untuk menetapkan project ID, region, kredensial aplikasi, dan kunci API.
- Metode ini bersifat opsional. Jika tidak ditentukan, Vertex AI akan menggunakan konstruktor Python default untuk class tersebut.
set_up()
:- Anda harus menggunakan metode ini untuk menentukan logika inisialisasi aplikasi. Misalnya, Anda dapat menggunakan metode ini untuk membuat koneksi ke database atau layanan dependen, mengimpor paket dependen, atau data prakomputasi yang digunakan untuk menyalurkan kueri.
- Metode ini bersifat opsional. Jika tidak ditentukan, Vertex AI berasumsi bahwa aplikasi tidak perlu melakukan inisialisasi sebelum melayani kueri pengguna.
query()
:- Anda harus menggunakan metode ini untuk menentukan logika runtime yang melayani kueri pengguna. Misalnya, Anda dapat menggunakan metode ini untuk menghasilkan konten dengan model AI Generatif atau mengambil data real-time dari API eksternal.
- Metode ini wajib dilakukan. Jika tidak ditentukan, layanan
ReasoningEngine
akan menampilkan error saat Anda mencoba membuat instance aplikasi jarak jauh. - Metode ini harus sesuai dengan Python Callable. Berikan docstring yang jelas yang menentukan apa yang dilakukannya, mendokumentasikan atributnya, dan menyediakan anotasi jenis untuk inputnya. Hindari argumen variabel.
Misalnya, metode kueri berikut tidak memuaskan:
def query(self, query): return self.my_chain.run(query)
Metode kueri berikut jauh lebih baik:
def query(self, question: str): """Query the application. Args: query: The user prompt. Returns: str: The LLM response. """ return self.my_chain.run(question)
Kode Python berikut adalah contoh aplikasi LangChain yang dapat di-deploy di Vertex AI:
class CLASS_NAME:
def __init__(self, project: str, location: str):
self.model_name = "text-bison@001"
self.prompt_input_variables = ["query"]
self.prompt_template="""You are a Google Cloud Platform helper.
Please answer the following query politely and professionally.
If the question is unrelated to Google Cloud Platform,
reply "Sorry I don't know the answer. "
User Query: {query}"""
self.project_id = project
self.location = location
def set_up(self):
"""All unpickle-able logic should go here.
The .set_up() method should not be called for an object that is being
prepared for deployment.
"""
from langchain import chains
from langchain import llms
from langchain import prompts
self.my_chain = chains.LLMChain(
llm = llms.VertexAI(
model_name=self.model_name,
max_output_tokens=self.max_output_tokens,
temperature=self.temperature,
top_p=self.top_p,
top_k=self.top_k,
project = self.project_id,
location = self.location,
),
prompt = prompts.PromptTemplate(
input_variables=self.prompt_input_variables,
template=self.prompt_template,
),
)
def query(self, question: str):
"""Query the application.
Args:
query: The user prompt.
Returns:
str: The LLM response.
"""
return self.my_chain.run(question)
Menguji aplikasi secara lokal
Buat instance aplikasi di memori lokal menggunakan kode berikut:
app = CLASS_NAME(project=PROJECT_ID, location=LOCATION)
app.set_up()
Anda dapat menguji aplikasi dengan mengirimkan kueri pengujian ke instance lokal:
response = app.query(question="What is Vertex AI?")
Respons harus berupa string yang mirip dengan string berikut:
"Vertex AI is a unified machine learning platform [...] With Vertex AI, you can easily build and deploy models that are accurate, scalable, and secure."