Код: Выделить всё
from langchain_community.llms import HuggingFacePipeline
from transformers import AutoTokenizer
import transformers
import torch
model="meta-llama/Llama-2-7b-chat-hf"
tokenizer=AutoTokenizer.from_pretrained(model)
pipeline=transformers.pipeline(
"text-generation",
model=model,
tokenizer=tokenizer,
torch_dtype=torch.bfloat16,
trust_remote_code=True,
device_map="auto",
max_length=1000,
do_sample=True,
top_k=10,
num_return_sequences=1,
eos_token_id=tokenizer.eos_token_id
)
llm=HuggingFacePipeline(pipeline=pipeline, model_kwargs={'temperature':0})
from langchain.prompts import PromptTemplate
prompt_template=PromptTemplate(input_variables=["book_name"],
template="Provide me a concise summary of the book {book_name}")
Код: Выделить всё
from langchain.chains import LLMChain
chain = LLMChain(llm=llm, prompt=prompt_template, verbose=True)
response= chain.run("Alchemist")
print(response)
Поэтому, следуя предупреждениям, я пытаюсь заменить вторую часть на
Код: Выделить всё
chain = prompt | llm
response = chain.invoke("The name of the rose")
print(response)
Код: Выделить всё
TypeError: Expected a Runnable, callable or dict.Instead got an unsupported type:
Я использовал что-то подобное, но с llm в качестве HuggingFaceEndPoint, и в этом случае это сработало, поэтому я подозреваю, что это связано с тем, что llm является HuggingFacePipeline, но может ли кто-нибудь сказать мне, как исправить код?
Изменить:
Я пробовал
Код: Выделить всё
chain2 = prompt | llm | StrOutputParser()
response2 = chain2.invoke({"bookname":"The name of the rose"})
# response2 = chain2.invoke("The name of the rose")
print(response2)
Подробнее здесь: https://stackoverflow.com/questions/788 ... epreacated