Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add jupyter for conversation #6

Merged
merged 5 commits into from
Jan 17, 2024
Merged
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
187 changes: 187 additions & 0 deletions notebook/conversation.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,187 @@
{
"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 `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."
qbc2016 marked this conversation as resolved.
Show resolved Hide resolved
]
},
{
"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"
qbc2016 marked this conversation as resolved.
Show resolved Hide resolved
]
},
{
"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",
qbc2016 marked this conversation as resolved.
Show resolved Hide resolved
"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",
qbc2016 marked this conversation as resolved.
Show resolved Hide resolved
" 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
}