Các dạng móc xích LangChain (phần 4)

RouterChain: Định tuyến động dựa trên đầu vào

RouterChain là một bộ phận mạnh mẽ trong LangChain cái làm có thể định tuyến động các đầu vào với các xích hay công
cụ khác nhau dựa trên nội dung hay các đặc điểm của đầu vào. Dạng xích này đặc biệt hữu dụng khi làm việc với các
đầu vào đa dạng cái yêu cầu các dòng ống xử lí khác nhau.
Các đặc tính then chốt của RouterChain
+ Phân tích đầu vào: Thẩm định đầu vào để quyết định tuyến đi phù hợp nhất
+ Định tuyến linh động: Có thể chuyển hướng các đầu vào tới các xích, công cụ hay cơ quan khác nhau.
+ Logic tùy chỉnh được: Cho phép các nhà phát triển định nghĩa tiêu chuẩn định tuyến
Các trường hợp sử dụng ví dụ
1. Các chatbots đa ngôn ngữ: Định tuyến các truy vấn tới các xích xử lí tùy theo ngôn ngữ.
2. Phân loại nội dung: Chuyển hướng nội dung tới các xích phân tích chuyên biệt dựa trên chủ đề.
3. Định tuyến tùy theo nhiệm vụ: Gửi các yêu cầu người dùng tới công cụ hay cơ quan phù hợp nhất.
Tạo mẫu Route
Thực thi code ví dụ
Xem xét một kịch bản nơi chúng ta sẽ muốn định tuyến nó tới LLMs/Agents khác nhau dựa trên các nhu cầu hay kịch bản
cụ thể.

# Templates for different user types
beginner_template = ”’You are a physics teacher focused on explaining complex topics in simple terms for beginners.
You assume no prior knowledge. Here is the question:\n{input}”’
expert_template = ”’You are an expert physics professor who explains topics to advanced audiences.
Assume the person has a PhD-level understanding. Here is the question:\n{input}”’

Định nghĩa thông tin prompt

# Define prompt information for routing
prompt_infos = [

{‘name’:’advanced physics’, ‘description’: ‘Answers advanced physics questions’, ‘prompt_template’:expert_template},
{‘name’:’beginner physics’, ‘description’: ‘Answers basic beginner physics questions’, ‘prompt_template’:beginner_template}

]

Tạo các xích đích đến: Tiếp theo, chúng ta chuyển đổi mỗi prompt thành một LLM chain và lưu giữ chúng trong một
dictionary, cái sẽ được sử dụng cho định tuyến.

from langchain.chat_models import ChatOpenAI
from langchain.prompts import ChatPromptTemplate
from langchain.chains import LLMChain
# Initialize the LLM (Azure OpenAI in this case)
llm = AzureOpenAI(deployment_name=”<Azure deployment name>”, model_name=”<Model name>”)
# Create chains for each destination
destination_chains = {}
for p_info in prompt_infos:
name = p_info[“name”]
prompt_template = p_info[“prompt_template”]
prompt = ChatPromptTemplate.from_template(template=prompt_template)
chain = LLMChain(llm=llm, prompt=prompt)
destination_chains[name] = chain

Chia sẻ