{ "cells": [ { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "from langchain import OpenAI\n", "from langchain.memory import ConversationKGMemory\n", "\n", "\n", "llm = OpenAI(temperature=0)\n", "from langchain.prompts.prompt import PromptTemplate\n", "from langchain.chains import ConversationChain\n", "\n", "template = \"\"\"The following is a friendly conversation between a human and an AI. The AI is talkative and provides lots of specific details from its context. \n", "If the AI does not know the answer to a question, it truthfully says it does not know. The AI ONLY uses information contained in the \"Relevant Information\" section and does not hallucinate.\n", "\n", "Relevant Information:\n", "\n", "{history}\n", "\n", "Conversation:\n", "Human: {input}\n", "AI:\"\"\"\n", "prompt = PromptTemplate(\n", " input_variables=[\"history\", \"input\"], template=template\n", ")\n", "conversation_with_kg = ConversationChain(\n", " llm=llm, \n", " verbose=True, \n", " prompt=prompt,\n", " memory=ConversationKGMemory(llm=llm)\n", ")" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "\u001b[1m> Entering new ConversationChain chain...\u001b[0m\n", "Prompt after formatting:\n", "\u001b[32;1m\u001b[1;3mThe following is a friendly conversation between a human and an AI. The AI is talkative and provides lots of specific details from its context. \n", "If the AI does not know the answer to a question, it truthfully says it does not know. The AI ONLY uses information contained in the \"Relevant Information\" section and does not hallucinate.\n", "\n", "Relevant Information:\n", "\n", "\n", "\n", "Conversation:\n", "Human: 你好\n", "AI:\u001b[0m\n", "\n", "\u001b[1m> Finished chain.\u001b[0m\n" ] }, { "data": { "text/plain": [ "' 你好!很高兴见到你。我是一个AI,我可以回答你的问题。你想问我什么?'" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "conversation_with_kg.predict(input=\"你好\")" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "\u001b[1m> Entering new ConversationChain chain...\u001b[0m\n", "Prompt after formatting:\n", "\u001b[32;1m\u001b[1;3mThe following is a friendly conversation between a human and an AI. The AI is talkative and provides lots of specific details from its context. \n", "If the AI does not know the answer to a question, it truthfully says it does not know. The AI ONLY uses information contained in the \"Relevant Information\" section and does not hallucinate.\n", "\n", "Relevant Information:\n", "\n", "\n", "\n", "Conversation:\n", "Human: 我叫李振,我正在帮助张三写作业,他是一名小学生。\n", "AI:\u001b[0m\n", "\n", "\u001b[1m> Finished chain.\u001b[0m\n" ] }, { "data": { "text/plain": [ "' 哦,你好李振!很高兴认识你。我知道张三是一名小学生,他有多大了?'" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "conversation_with_kg.predict(input=\"我叫李振,我正在帮助张三写作业,他是一名小学生。\")" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "\u001b[1m> Entering new ConversationChain chain...\u001b[0m\n", "Prompt after formatting:\n", "\u001b[32;1m\u001b[1;3mThe following is a friendly conversation between a human and an AI. The AI is talkative and provides lots of specific details from its context. \n", "If the AI does not know the answer to a question, it truthfully says it does not know. The AI ONLY uses information contained in the \"Relevant Information\" section and does not hallucinate.\n", "\n", "Relevant Information:\n", "\n", "On 张三: 张三 是 一名小学生.\n", "\n", "Conversation:\n", "Human: 关于张三,你了解多少\n", "AI:\u001b[0m\n", "\n", "\u001b[1m> Finished chain.\u001b[0m\n" ] }, { "data": { "text/plain": [ "' 我知道张三是一名小学生。'" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "conversation_with_kg.predict(input=\"关于张三,你了解多少\")" ] } ], "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.10" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 }