Я следил за старым учебником о цепочке в Лэнгхейне. С этим я писал несколько собственных демонстрационных цепей, таких как: < /p>
import json
from langchain_core.prompts import ChatPromptTemplate
from langchain.schema.runnable import RunnableMap
from langchain.schema.output_parser import StrOutputParser
from langchain_openai import ChatOpenAI
from langchain.chains import SequentialChain
from langchain.chains.llm import LLMChain
api_key="sk-YOUR_OPENAI_API_KEY"
llm = ChatOpenAI(
model="gpt-4o",
temperature=0,
max_tokens=None,
timeout=None,
max_retries=2,
seed=42,
api_key=api_key)
output_parser = StrOutputParser()
prompt_candidates = ChatPromptTemplate.from_template(
"""A trivia game has asked to which contry does the town of '{town}' belongs to, and the options are:
{country_options}
Only return the correct option chosen based on your knowledge, nothing more"""
)
prompt_finalists = ChatPromptTemplate.from_template(
"""Your task is to build OUTPUTWORD, follow these instructions:
1. Get CAPITAL CITY: It is the capital city of {country}
2. Get INITIAL LETTER: It is the initial letter of the CAPITAL CITY
3. Get OUTPUTWORD: Make a word starting with INITIAL LETTER and related with {subject}
Return the result in a JSON object with key `output` and OUTPUTWORD its correspondent output"""
)
# -------------------- CURRENT FUNCTIONAL SOLUTION --------------------
# Chains definition
candidates_chain = LLMChain(llm=llm, prompt=prompt_candidates, output_key="country")
finalists_chain = LLMChain(
llm=llm.bind(response_format={"type": "json_object"}),
prompt=prompt_finalists, output_key="finalists"
)
# Chaining
final_chain = SequentialChain(
chains=[candidates_chain, finalists_chain],
input_variables=["town", "country_options", "subject"],
output_variables=["finalists"],
verbose=False
)
result=final_chain.invoke(
{
"town": "Puembo",
"country_options": ["Ukraine", "Ecuador", "Uzbekistan"],
"subject": "Biology"
}
)["finalists"]
print(result)
< /code>
Однако я получил следующее предупреждение: < /p>
C:\Users\david\Desktop\dummy\test.py:44: LangChainDeprecationWarning: The class `LLMChain` was deprecated in LangChain 0.1.17 and will be removed in 1.0. Use :meth:`~RunnableSequence, e.g., `prompt | llm`` instead.
candidates_chain = LLMChain(llm=llm, prompt=prompt_candidates, output_key="country")
< /code>
Действительно, я читал документы, которые просили вас использовать трубу "|" оператор; Однако приведенные примеры, есть очень простые и обычно включают в себя подсказку и LLM, которые очень просты (и даже предоставляются в одном и том же предупреждении); Однако я не мог выяснить, как адаптировать оператор трубы в моей собственной цепи.from langchain_core.output_parsers import StrOutputParser
chain_a = prompt_candidates | llm | StrOutputParser()
chain_b = prompt_finalists | llm | StrOutputParser()
composed_chain = chain_a | chain_b
output_chain=composed_chain.invoke(
{
"career": "Artificial Intelligence",
"research_list": "\n".join(research_col)
}
)
< /code>
Но это заставляет меня: < /p>
TypeError: Expected mapping type as input to ChatPromptTemplate. Received .
< /code>
Я пробовал несколько вещей, но ничего не функционально. Что я делаю не так?
Подробнее здесь: https://stackoverflow.com/questions/794 ... e-operator
Мигрировать из Llmchain в оператор трубы ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
RunnableSequence вместо LLMChain выдает ошибку (обновление из устаревшего langchain)
Anonymous » » в форуме Python - 0 Ответы
- 24 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Возврат асинхронного генератора из LLMChain LangChain для потоковой передачи
Anonymous » » в форуме Python - 0 Ответы
- 10 Просмотры
-
Последнее сообщение Anonymous
-