Skip to content

Commit

Permalink
add jupyter for conversation
Browse files Browse the repository at this point in the history
  • Loading branch information
qbc2016 committed Jan 15, 2024
1 parent b29449e commit 3130075
Showing 1 changed file with 182 additions and 0 deletions.
182 changes: 182 additions & 0 deletions notebook/conversation.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,182 @@
{
"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.Complete code is in `example/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": "28c4c4dc-7107-45e5-9ef4-f6506a0d55e2",
"metadata": {},
"source": [
"To install AgentScope, you need to have Python 3.9 or higher installed."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "6dbd5990-ed46-4727-84b1-d4131c5a6245",
"metadata": {},
"outputs": [],
"source": [
"!pip install AgentScope"
]
},
{
"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.user_agent import UserAgent\n",
"from agentscope.pipelines.functional import sequentialpipeline\n",
"\n",
"agentscope.init(\n",
" model_configs=[\n",
" {\n",
" \"type\": \"openai\",\n",
" \"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",
" \"type\": \"post_api\",\n",
" \"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": 3,
"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=\"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": "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",
"User: Please help me arrange a day trip to Hangzhou.\n",
"Assistant: Certainly! I can help you with that. When are you planning to visit Hangzhou?\n",
"User: Tomorrow\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",
"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
}

0 comments on commit 3130075

Please sign in to comment.