{ "cells": [ { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "from langchain.chat_models import ChatOpenAI\n", "from langchain import LLMChain\n", "from langchain.prompts.chat import (\n", " ChatPromptTemplate,\n", " SystemMessagePromptTemplate,\n", " HumanMessagePromptTemplate\n", ")\n", "\n", "from langchain.schema import (\n", " AIMessage,\n", " BaseMessage,\n", " ChatGeneration,\n", " ChatMessage,\n", " ChatResult,\n", " HumanMessage,\n", " SystemMessage,\n", ")" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "def _convert_message_to_dict(message: BaseMessage) -> dict:\n", " if isinstance(message, ChatMessage):\n", " message_dict = {\"role\": message.role, \"content\": message.content}\n", " elif isinstance(message, HumanMessage):\n", " message_dict = {\"role\": \"user\", \"content\": message.content}\n", " elif isinstance(message, AIMessage):\n", " message_dict = {\"role\": \"assistant\", \"content\": message.content}\n", " elif isinstance(message, SystemMessage):\n", " message_dict = {\"role\": \"system\", \"content\": message.content}\n", " else:\n", " raise ValueError(f\"Got unknown type {message}\")\n", " if \"name\" in message.additional_kwargs:\n", " message_dict[\"name\"] = message.additional_kwargs[\"name\"]\n", " return message_dict" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[SystemMessage(content='你是一名翻译助手。把中文 翻译为 英语。', additional_kwargs={}), HumanMessage(content='我想请假', additional_kwargs={}, example=False)]\n", "[{'role': 'system', 'content': '你是一名翻译助手。把中文 翻译为 英语。'}, {'role': 'user', 'content': '我想请假'}]\n" ] } ], "source": [ "\n", "template = \"你是一名翻译助手。把{input_language} 翻译为 {output_language}。\"\n", "system_message_prompt = SystemMessagePromptTemplate.from_template(template)\n", "\n", "human_template = \"{text}\"\n", "human_message_prompt = HumanMessagePromptTemplate.from_template(human_template)\n", "\n", "# 这里是使用chat请求,返回BaseMessage。\n", "chat_prompt_template = ChatPromptTemplate.from_messages([system_message_prompt, human_message_prompt])\n", "messages = chat_prompt_template.format_prompt(input_language=\"中文\", output_language=\"英语\", text=\"我想请假\").to_messages()\n", "print(messages)\n", "message_dicts = [_convert_message_to_dict(m) for m in messages]\n", "print(message_dicts)" ] } ], "metadata": { "kernelspec": { "display_name": "base", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.11" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 }