0
0

11_chain_sequential.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. from pathlib import Path
  2. import sys
  3. sys.path.append(str(Path(__file__).resolve().parents[1]))
  4. from _chapter2_config import as_text, get_chat_model, print_dependency_hint
  5. try:
  6. from langchain_core.output_parsers import StrOutputParser
  7. from langchain_core.prompts import PromptTemplate
  8. except ModuleNotFoundError as exc:
  9. print_dependency_hint(exc)
  10. raise SystemExit(1)
  11. def main() -> None:
  12. first_prompt = PromptTemplate(
  13. input_variables=["lastname"],
  14. template="我的邻居姓{lastname},他生了个儿子,给他儿子起个名字",
  15. )
  16. try:
  17. llm = get_chat_model(temperature=0)
  18. except ModuleNotFoundError as exc:
  19. print_dependency_hint(exc)
  20. raise SystemExit(1)
  21. first_chain = first_prompt | llm | StrOutputParser()
  22. second_prompt = PromptTemplate(
  23. input_variables=["child_name"],
  24. template="邻居的儿子名字叫{child_name},给他起一个小名",
  25. )
  26. second_chain = second_prompt | llm
  27. overall_chain = first_chain | second_chain
  28. print(overall_chain)
  29. print("*" * 80)
  30. result = overall_chain.invoke({"lastname": "王"})
  31. print(as_text(result))
  32. if __name__ == "__main__":
  33. main()