13_output_parser_list.py 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. from pathlib import Path
  2. import sys
  3. sys.path.append(str(Path(__file__).resolve().parents[1]))
  4. from _chapter2_config import get_chat_model, print_dependency_hint
  5. try:
  6. from langchain_core.output_parsers import CommaSeparatedListOutputParser
  7. from langchain_core.prompts import ChatPromptTemplate
  8. except ModuleNotFoundError as exc:
  9. print_dependency_hint(exc)
  10. raise SystemExit(1)
  11. def main() -> None:
  12. try:
  13. model = get_chat_model(temperature=0)
  14. except ModuleNotFoundError as exc:
  15. print_dependency_hint(exc)
  16. raise SystemExit(1)
  17. parser = CommaSeparatedListOutputParser()
  18. format_instructions = parser.get_format_instructions()
  19. prompt = ChatPromptTemplate.from_template(
  20. "用中文列出{topic}的五个最重要特点。\n{format_instructions}"
  21. )
  22. chain = prompt | model | parser
  23. result = chain.invoke(
  24. {
  25. "topic": "大模型",
  26. "format_instructions": format_instructions,
  27. }
  28. )
  29. print(result)
  30. if __name__ == "__main__":
  31. main()