From 7306032dcffe1f450c72222b07277b7b8f1e44b4 Mon Sep 17 00:00:00 2001 From: Bigtable123 <63093159+Bigtable123@users.noreply.github.com> Date: Tue, 16 Jan 2024 03:13:21 +0800 Subject: [PATCH] docs: update baidu_qianfan_endpoint.ipynb doc (#15940) - **Description:** Updated the docs for the chat integration module baidu_qianfan_endpoint.ipynb - **Issue:** #15664 - **Dependencies:**N/A --- .../chat/baidu_qianfan_endpoint.ipynb | 228 ++++++++++-------- 1 file changed, 122 insertions(+), 106 deletions(-) diff --git a/docs/docs/integrations/chat/baidu_qianfan_endpoint.ipynb b/docs/docs/integrations/chat/baidu_qianfan_endpoint.ipynb index 43a1336c1b9..34b524d8dee 100644 --- a/docs/docs/integrations/chat/baidu_qianfan_endpoint.ipynb +++ b/docs/docs/integrations/chat/baidu_qianfan_endpoint.ipynb @@ -53,9 +53,16 @@ "- AquilaChat-7B" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Set up" + ] + }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -65,83 +72,105 @@ "from langchain_community.chat_models import QianfanChatEndpoint\n", "from langchain_core.language_models.chat_models import HumanMessage\n", "\n", - "os.environ[\"QIANFAN_AK\"] = \"your_ak\"\n", - "os.environ[\"QIANFAN_SK\"] = \"your_sk\"\n", - "\n", - "chat = QianfanChatEndpoint(\n", - " streaming=True,\n", - ")\n", - "res = chat([HumanMessage(content=\"write a funny joke\")])" + "os.environ[\"QIANFAN_AK\"] = \"Your_api_key\"\n", + "os.environ[\"QIANFAN_SK\"] = \"You_secret_Key\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Usage" ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 2, "metadata": {}, "outputs": [ { - "name": "stderr", - "output_type": "stream", - "text": [ - "[INFO] [09-15 20:00:36] logging.py:55 [t:139698882193216]: requesting llm api endpoint: /chat/eb-instant\n", - "[INFO] [09-15 20:00:37] logging.py:55 [t:139698882193216]: async requesting llm api endpoint: /chat/eb-instant\n" - ] - }, + "data": { + "text/plain": [ + "AIMessage(content='您好!请问您需要什么帮助?我将尽力回答您的问题。')" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "chat = QianfanChatEndpoint(streaming=True)\n", + "messages = [HumanMessage(content=\"Hello\")]\n", + "chat.invoke(messages)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "AIMessage(content='您好!有什么我可以帮助您的吗?')" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "await chat.ainvoke(messages)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[AIMessage(content='您好!有什么我可以帮助您的吗?')]" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "chat.batch([messages])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Streaming" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "chat resp: content='您好,您似乎输入' additional_kwargs={} example=False\n", - "chat resp: content='了一个话题标签,请问需要我帮您找到什么资料或者帮助您解答什么问题吗?' additional_kwargs={} example=False\n", - "chat resp: content='' additional_kwargs={} example=False\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "[INFO] [09-15 20:00:39] logging.py:55 [t:139698882193216]: async requesting llm api endpoint: /chat/eb-instant\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "generations=[[ChatGeneration(text=\"The sea is a vast expanse of water that covers much of the Earth's surface. It is a source of travel, trade, and entertainment, and is also a place of scientific exploration and marine conservation. The sea is an important part of our world, and we should cherish and protect it.\", generation_info={'finish_reason': 'finished'}, message=AIMessage(content=\"The sea is a vast expanse of water that covers much of the Earth's surface. It is a source of travel, trade, and entertainment, and is also a place of scientific exploration and marine conservation. The sea is an important part of our world, and we should cherish and protect it.\", additional_kwargs={}, example=False))]] llm_output={} run=[RunInfo(run_id=UUID('d48160a6-5960-4c1d-8a0e-90e6b51a209b'))]\n", - "astream content='The sea is a vast' additional_kwargs={} example=False\n", - "astream content=' expanse of water, a place of mystery and adventure. It is the source of many cultures and civilizations, and a center of trade and exploration. The sea is also a source of life and beauty, with its unique marine life and diverse' additional_kwargs={} example=False\n", - "astream content=' coral reefs. Whether you are swimming, diving, or just watching the sea, it is a place that captivates the imagination and transforms the spirit.' additional_kwargs={} example=False\n" + "您好!有什么我可以帮助您的吗?\n" ] } ], "source": [ - "from langchain.schema import HumanMessage\n", - "from langchain_community.chat_models import QianfanChatEndpoint\n", - "\n", - "chatLLM = QianfanChatEndpoint()\n", - "res = chatLLM.stream([HumanMessage(content=\"hi\")], streaming=True)\n", - "for r in res:\n", - " print(\"chat resp:\", r)\n", - "\n", - "\n", - "async def run_aio_generate():\n", - " resp = await chatLLM.agenerate(\n", - " messages=[[HumanMessage(content=\"write a 20 words sentence about sea.\")]]\n", - " )\n", - " print(resp)\n", - "\n", - "\n", - "await run_aio_generate()\n", - "\n", - "\n", - "async def run_aio_stream():\n", - " async for res in chatLLM.astream(\n", - " [HumanMessage(content=\"write a 20 words sentence about sea.\")]\n", - " ):\n", - " print(\"astream\", res)\n", - "\n", - "\n", - "await run_aio_stream()" + "try:\n", + " for chunk in chat.stream(messages):\n", + " print(chunk.content, end=\"\", flush=True)\n", + "except TypeError as e:\n", + " print(\"\")" ] }, { @@ -151,39 +180,36 @@ "source": [ "## Use different models in Qianfan\n", "\n", - "In the case you want to deploy your own model based on Ernie Bot or third-party open-source model, you could follow these steps:\n", + "The default model is ERNIE-Bot-turbo, in the case you want to deploy your own model based on Ernie Bot or third-party open-source model, you could follow these steps:\n", "\n", - "- 1. (Optional, if the model are included in the default models, skip it)Deploy your model in Qianfan Console, get your own customized deploy endpoint.\n", - "- 2. Set up the field called `endpoint` in the initialization:" + "1. (Optional, if the model are included in the default models, skip it) Deploy your model in Qianfan Console, get your own customized deploy endpoint.\n", + "2. Set up the field called `endpoint` in the initialization:" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "metadata": {}, "outputs": [ { - "name": "stderr", - "output_type": "stream", - "text": [ - "[INFO] [09-15 20:00:50] logging.py:55 [t:139698882193216]: requesting llm api endpoint: /chat/bloomz_7b1\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "content='你好!很高兴见到你。' additional_kwargs={} example=False\n" - ] + "data": { + "text/plain": [ + "AIMessage(content='Hello,可以回答问题了,我会竭尽全力为您解答,请问有什么问题吗?')" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ - "chatBloom = QianfanChatEndpoint(\n", + "chatBot = QianfanChatEndpoint(\n", " streaming=True,\n", - " model=\"BLOOMZ-7B\",\n", + " model=\"ERNIE-Bot\",\n", ")\n", - "res = chatBloom([HumanMessage(content=\"hi\")])\n", - "print(res)" + "\n", + "messages = [HumanMessage(content=\"Hello\")]\n", + "chatBot.invoke(messages)" ] }, { @@ -202,35 +228,25 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 7, "metadata": {}, "outputs": [ { - "name": "stderr", - "output_type": "stream", - "text": [ - "[INFO] [09-15 20:00:57] logging.py:55 [t:139698882193216]: requesting llm api endpoint: /chat/eb-instant\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "content='您好,您似乎输入' additional_kwargs={} example=False\n", - "content='了一个文本字符串,但并没有给出具体的问题或场景。' additional_kwargs={} example=False\n", - "content='如果您能提供更多信息,我可以更好地回答您的问题。' additional_kwargs={} example=False\n", - "content='' additional_kwargs={} example=False\n" - ] + "data": { + "text/plain": [ + "AIMessage(content='您好!有什么我可以帮助您的吗?')" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ - "res = chat.stream(\n", - " [HumanMessage(content=\"hi\")],\n", + "chat.invoke(\n", + " [HumanMessage(content=\"Hello\")],\n", " **{\"top_p\": 0.4, \"temperature\": 0.1, \"penalty_score\": 1},\n", - ")\n", - "\n", - "for r in res:\n", - " print(r)" + ")" ] } ], @@ -250,7 +266,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.5" + "version": "3.9.18" }, "vscode": { "interpreter": {