200 lines
7.1 KiB
Plaintext
200 lines
7.1 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "b75c96fc-e399-4f81-bcf8-8a5d15bcb79b",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Conversation with Agent"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "25d30c19de76e93f",
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"source": [
|
|
"In this notebook, we will show a demo of how to program a multi-agent conversation in AgentScope. The complete codes can be found in `examples/conversation/conversation.py`, which sets up a user agent and an assistant agent to have a conversation. When user input \"exit\", the conversation ends. You can modify the `sys_prompt` to change the role of assistant agent."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "5f8b1a15-cf1a-46ff-8a62-88d7476c8608",
|
|
"metadata": {},
|
|
"source": [
|
|
"To install AgentScope, please follow the steps in [README.md](../README.md#installation)."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "4ccebee3-9a27-47d9-9133-40126b888593",
|
|
"metadata": {},
|
|
"source": [
|
|
"First, set the configs of the models you use."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "c60227f7-7380-4f72-b653-bc7394cfaace",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import agentscope\n",
|
|
"from agentscope.agents import DialogAgent\n",
|
|
"from agentscope.agents import UserAgent\n",
|
|
"from agentscope.pipelines.functional import sequentialpipeline\n",
|
|
"\n",
|
|
"agentscope.init(\n",
|
|
" model_configs=[\n",
|
|
" {\n",
|
|
" \"model_type\": \"openai_chat\",\n",
|
|
" \"config_name\": \"gpt-3.5-turbo\",\n",
|
|
" \"model_name\": \"gpt-3.5-turbo\",\n",
|
|
" \"api_key\": \"xxx\", # Load from env if not provided\n",
|
|
" \"organization\": \"xxx\", # Load from env if not provided\n",
|
|
" \"generate_args\": {\n",
|
|
" \"temperature\": 0.5,\n",
|
|
" },\n",
|
|
" },\n",
|
|
" {\n",
|
|
" \"model_type\": \"post_api_chat\",\n",
|
|
" \"config_name\": \"my_post_api\",\n",
|
|
" \"api_url\": \"https://xxx\",\n",
|
|
" \"headers\": {},\n",
|
|
" },\n",
|
|
" ],\n",
|
|
")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "503f7e7a-7a93-468d-b88b-37540f607083",
|
|
"metadata": {},
|
|
"source": [
|
|
"Then, initialize two agents, one is used as an assistant agent, and the other one is a user agent."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"id": "848270c3-b73b-482d-a426-49e0ac67dc39",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"dialog_agent = DialogAgent(\n",
|
|
" name=\"Assistant\",\n",
|
|
" sys_prompt=\"You're a helpful assistant.\",\n",
|
|
" model_config_name=\"gpt-3.5-turbo\", # replace by your model config name\n",
|
|
")\n",
|
|
"user_agent = UserAgent()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "128356259909067b",
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"source": [
|
|
"Start the conversation between user and assistant. Input \"exit\" to quit."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "e46f7a9d-355b-46cd-86b5-201c91eabffb",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"x = None\n",
|
|
"while x is None or x.content != \"exit\":\n",
|
|
" x = dialog_agent(x)\n",
|
|
" x = user_agent(x)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "adc601a8-144f-4e42-bc86-f0e14adb39b5",
|
|
"metadata": {},
|
|
"source": [
|
|
"To code it easier, you can use pipeline in [`agentscope.pipelines`](https://github.com/modelscope/agentscope/blob/main/src/agentscope/pipelines/pipeline.py) and [`agentscope.pipelines.functional`](https://github.com/modelscope/agentscope/blob/main/src/agentscope/pipelines/functional.py)."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "6057d6c5-a332-4949-84a7-6fbeda021561",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"x = None\n",
|
|
"while x is None or x.content != \"exit\":\n",
|
|
" x = sequentialpipeline([dialog_agent, user_agent], x)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "aed5ff6a-5167-4450-be57-b42ee8ae5e92",
|
|
"metadata": {},
|
|
"source": [
|
|
"We show the following dialog as an example."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "9cb11109-4229-4faa-a859-9e806d9c2a6f",
|
|
"metadata": {},
|
|
"source": [
|
|
"Assistant: Thank you! I'm here to assist you with any questions or tasks you have. How can I help you today?\n",
|
|
"\n",
|
|
"User: Please help me arrange a day trip to Hangzhou.\n",
|
|
"\n",
|
|
"Assistant: Certainly! I can help you with that. When are you planning to visit Hangzhou?\n",
|
|
"\n",
|
|
"User: Tomorrow\n",
|
|
"\n",
|
|
"Assistant: Great! Tomorrow sounds like a good day for a day trip to Hangzhou. Here's a suggested itinerary for your day trip:\n",
|
|
"\n",
|
|
"1. Depart from your current location: It's important to plan your departure time to arrive in Hangzhou early in the morning. You can consider taking a train or bus, or hiring a private driver for the trip.\n",
|
|
"\n",
|
|
"2. West Lake: Start your day by visiting West Lake, which is the heart of Hangzhou. Take a leisurely stroll along the lake and enjoy the beautiful scenery. You can also rent a boat or take a cruise to explore the lake.\n",
|
|
"\n",
|
|
"3. Lingyin Temple: After visiting West Lake, head to Lingyin Temple, one of the most famous Buddhist temples in China. Marvel at the intricate architecture and explore the peaceful surroundings.\n",
|
|
"\n",
|
|
"4. Hefang Street: Next, make your way to Hefang Street, a vibrant pedestrian street filled with shops, street vendors, and traditional food stalls. Take some time to shop for souvenirs or try some local snacks.\n",
|
|
"\n",
|
|
"5. Longjing Tea Plantations: As Hangzhou is renowned for its tea, a visit to the Longjing Tea Plantations is a must. Take a short trip to the outskirts of Hangzhou and immerse yourself in the serene tea fields. You can also participate in a tea ceremony and learn about the tea-making process.\n",
|
|
"\n",
|
|
"6. Return to your starting point: After a full day of exploring Hangzhou, it's time to head back to your starting point. Plan your return journey accordingly, whether it's by train, bus, or with the help of a hired driver.\n",
|
|
"\n",
|
|
"Remember to check the opening hours of the attractions and plan your time accordingly. Also, be prepared for the weather and make sure to bring comfortable shoes, a hat, and sunscreen. Enjoy your day trip to Hangzhou!\n",
|
|
"\n",
|
|
"User: exit"
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Python 3 (ipykernel)",
|
|
"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.9.18"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 5
|
|
}
|