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

CamelAI Readme and Example Journal implemented! #538

Merged
merged 43 commits into from
Dec 16, 2024
Merged
Show file tree
Hide file tree
Changes from 20 commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
e435aa0
Adds a journal with much more context for the Anthropic API's Tool Sy…
TKTSWalker Nov 11, 2024
37e265f
Update anthropicguide.md
TKTSWalker Nov 11, 2024
c4ed5bc
Update anthropicguide.md
TKTSWalker Nov 11, 2024
4e002bc
Merge branch 'main' into main
the-praxs Nov 14, 2024
fc9135d
Fixed Example Tool Journal
TKTSWalker Nov 15, 2024
4d5b18b
clean notebook
areibman Nov 19, 2024
ba1d637
Merge branch 'main' into main
areibman Nov 19, 2024
36f2a3b
Merge branch 'AgentOps-AI:main' into main
TKTSWalker Nov 28, 2024
e526bf2
Create camelaiguide.md
TKTSWalker Nov 28, 2024
68a94c0
Example files
TKTSWalker Nov 28, 2024
b36a567
Rename camelai-simple-example (2).ipynb to camelai-simple-example.ipynb
TKTSWalker Nov 28, 2024
83c2c99
Update camelaiguide.md
TKTSWalker Nov 28, 2024
d59e1e6
Update README.md
TKTSWalker Nov 28, 2024
94d7f9f
Merge branch 'main' into main
the-praxs Dec 10, 2024
19ad4fc
Update README.md
TKTSWalker Dec 10, 2024
56dfbd9
Merge branch 'AgentOps-AI:main' into main
TKTSWalker Dec 10, 2024
592b00e
Update README.md
TKTSWalker Dec 10, 2024
a692520
Merge branch 'main' into main
teocns Dec 11, 2024
db8c974
Merge branch 'main' into main
the-praxs Dec 13, 2024
38fbfea
Merge branch 'main' into main
the-praxs Dec 13, 2024
095daf0
Rename camelaiguide.md to README.md
TKTSWalker Dec 13, 2024
9dad1b1
Update README.md
TKTSWalker Dec 13, 2024
3b2b601
Update README.md
TKTSWalker Dec 13, 2024
4a07612
Update README.md
TKTSWalker Dec 13, 2024
507c003
Update README.md
TKTSWalker Dec 13, 2024
6cb0205
Update README.md
TKTSWalker Dec 13, 2024
ba8acf1
Delete examples/camelai_examples/camelai-simple-example.ipynb
TKTSWalker Dec 13, 2024
fdbee73
Add files via upload
TKTSWalker Dec 13, 2024
3d5e5e4
Rename camelai-simple-example (3).ipynb to camelai-simple-example.ipynb
TKTSWalker Dec 13, 2024
3ec13ce
Delete examples/camelai_examples/camelai-multi-agent-example.ipynb
TKTSWalker Dec 13, 2024
34267ee
Add files via upload
TKTSWalker Dec 13, 2024
becbc56
Rename camelai-multi-agent-example (1).ipynb to camelai-multi-agent-e…
TKTSWalker Dec 13, 2024
c506d17
Add files via upload
TKTSWalker Dec 13, 2024
5f30f86
Update and rename Bladewolf Training Data - Sheet1 (1).csv to Bladewo…
TKTSWalker Dec 13, 2024
f222193
Update README.md
TKTSWalker Dec 13, 2024
37cd2cc
Update and rename Bladewolf Training Data.csv to Bladewolf Training D…
TKTSWalker Dec 13, 2024
7078c39
Update README.md
TKTSWalker Dec 13, 2024
2359944
Update README.md
TKTSWalker Dec 13, 2024
e4fca8e
Update README.md
TKTSWalker Dec 13, 2024
3f4a122
Update README.md
TKTSWalker Dec 13, 2024
1485613
Merge branch 'main' into main
the-praxs Dec 13, 2024
6cf1190
camel example
areibman Dec 16, 2024
ebd3ab4
reorganize files
areibman Dec 16, 2024
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
39 changes: 39 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -517,6 +517,45 @@ await main()
```
</details>



### CamelAI ﹨

Track agents built with the CamelAI Python SDK (>=0.32.0).

- [CamelAI integration guide](https://docs.camel-ai.org/cookbooks/agents_tracking.html#)
- [Official CamelAI documentation](https://docs.camel-ai.org/index.html)

<details>
<summary>Installation</summary>

```bash
pip install camel-ai[all]==0.2.9
pip install agentops==0.3.10
```

```python python
# Prompt for the OpenAI API key securely
openai_api_key = getpass('Enter your API key: ')
os.environ["OPENAI_API_KEY"] = openai_api_key

# Prompt for the AgentOps API key securely
agentops_api_key = getpass('Enter your API key: ')
os.environ["AGENTOPS_API_KEY"] = agentops_api_key


# Beginning of program's code (i.e. main.py, __init__.py)
AGENTOPS_API_KEY = os.getenv("AGENTOPS_API_KEY")
agentops.init(AGENTOPS_API_KEY, default_tags=["CAMEL X AgentOps Single Agent with Tool Example"])


```
</details>

[You can find usage examples here!](examples/camelai_examples/camelaiguide.md).



### LiteLLM 🚅

AgentOps provides support for LiteLLM(>=1.3.1), allowing you to call 100+ LLMs using the same Input/Output Format.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.14","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":9977643,"sourceType":"datasetVersion","datasetId":6139214}],"dockerImageVersionId":30786,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"In this example, we will use CamelAI to simulate tools! In this case, we will best determine how many shots it takes to beat an enemy with a blue shield in Apex Legeneds using melee only. The character \"Pathfinder\" from Apex Legends will answer.","metadata":{}},{"cell_type":"markdown","source":"First let's install the dependencies for AgentOps/CamelAI","metadata":{}},{"cell_type":"code","source":"%pip install camel-ai[all]==0.2.9\n%pip install agentops==0.3.10","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"Setup our imports (As usual)","metadata":{}},{"cell_type":"code","source":"import agentops\nimport os\nfrom getpass import getpass","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-11-28T15:06:17.026197Z","iopub.execute_input":"2024-11-28T15:06:17.026625Z","iopub.status.idle":"2024-11-28T15:06:17.162918Z","shell.execute_reply.started":"2024-11-28T15:06:17.026584Z","shell.execute_reply":"2024-11-28T15:06:17.161820Z"}},"outputs":[],"execution_count":2},{"cell_type":"markdown","source":"And we set our API keys","metadata":{}},{"cell_type":"code","source":"# Prompt for the OpenAI API key securely\nopenai_api_key = getpass('Enter your API key: ')\nos.environ[\"OPENAI_API_KEY\"] = openai_api_key","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-11-28T15:13:29.848382Z","iopub.execute_input":"2024-11-28T15:13:29.848829Z","iopub.status.idle":"2024-11-28T15:13:32.018378Z","shell.execute_reply.started":"2024-11-28T15:13:29.848790Z","shell.execute_reply":"2024-11-28T15:13:32.017338Z"}},"outputs":[{"output_type":"stream","name":"stdin","text":"Enter your API key: ········\n"}],"execution_count":3},{"cell_type":"code","source":"# Prompt for the AgentOps API key securely\nagentops_api_key = getpass('Enter your API key: ')\nos.environ[\"AGENTOPS_API_KEY\"] = agentops_api_key","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-11-28T15:13:58.408826Z","iopub.execute_input":"2024-11-28T15:13:58.409211Z","iopub.status.idle":"2024-11-28T15:14:00.733013Z","shell.execute_reply.started":"2024-11-28T15:13:58.409177Z","shell.execute_reply":"2024-11-28T15:14:00.732045Z"}},"outputs":[{"output_type":"stream","name":"stdin","text":"Enter your API key: ········\n"}],"execution_count":4},{"cell_type":"markdown","source":"We import a few more things Camel needs","metadata":{}},{"cell_type":"code","source":"from typing import List\n\nfrom colorama import Fore\n\nfrom camel.agents.chat_agent import FunctionCallingRecord\nfrom camel.configs import ChatGPTConfig\nfrom camel.models import ModelFactory\nfrom camel.societies import RolePlaying\nfrom camel.types import ModelPlatformType, ModelType\nfrom camel.utils import print_text_animated\n\nimport agentops","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-11-28T15:14:42.920712Z","iopub.execute_input":"2024-11-28T15:14:42.921122Z","iopub.status.idle":"2024-11-28T15:14:43.966070Z","shell.execute_reply.started":"2024-11-28T15:14:42.921085Z","shell.execute_reply":"2024-11-28T15:14:43.964895Z"}},"outputs":[],"execution_count":5},{"cell_type":"markdown","source":"Now we setup our assistant!","metadata":{}},{"cell_type":"code","source":"AGENTOPS_API_KEY = os.getenv(\"AGENTOPS_API_KEY\")\nagentops.init(tags=[\"CAMEL X AgentOps Multi-agent with Tools\"])\n\n\nfrom camel.toolkits import (\n SearchToolkit,\n MathToolkit,\n)","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"And now we set a task prompt!","metadata":{}},{"cell_type":"code","source":"task_prompt = (\n \"We are in the Apex Legends Games. Determine the amount of\"\n \"meele hits it will take to beat someone with a blue shield.\"\n \"You should answer as if you are Pathfinder from the Apex Games.\"\n)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-11-28T15:15:13.326118Z","iopub.execute_input":"2024-11-28T15:15:13.326663Z","iopub.status.idle":"2024-11-28T15:15:13.331792Z","shell.execute_reply.started":"2024-11-28T15:15:13.326625Z","shell.execute_reply":"2024-11-28T15:15:13.330591Z"}},"outputs":[],"execution_count":7},{"cell_type":"markdown","source":"And let's set our tools! You can look at the link below to see all available tools;\n\nhttps://docs.camel-ai.org/key_modules/tools.html","metadata":{}},{"cell_type":"code","source":"tools = [\n *MathToolkit().get_tools(),\n *SearchToolkit().get_tools(),\n]","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-11-28T15:15:49.500386Z","iopub.execute_input":"2024-11-28T15:15:49.500792Z","iopub.status.idle":"2024-11-28T15:15:49.523604Z","shell.execute_reply.started":"2024-11-28T15:15:49.500755Z","shell.execute_reply":"2024-11-28T15:15:49.522432Z"}},"outputs":[],"execution_count":11},{"cell_type":"markdown","source":"Finally, let's setup our session!","metadata":{}},{"cell_type":"code","source":"search_session = RolePlaying(\n assistant_role_name=\"Searcher\",\n user_role_name=\"Pathfinder\",\n assistant_agent_kwargs=dict(\n model=ModelFactory.create(\n model_platform=ModelPlatformType.OPENAI,\n model_type=ModelType.GPT_4O_MINI,\n ),\n tools=tools,\n ),\n user_agent_kwargs=dict(\n model=ModelFactory.create(\n model_platform=ModelPlatformType.OPENAI,\n model_type=ModelType.GPT_4O_MINI,\n ),\n ),\n task_prompt=task_prompt,\n with_task_specify=False,\n)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-11-28T15:15:50.915736Z","iopub.execute_input":"2024-11-28T15:15:50.916154Z","iopub.status.idle":"2024-11-28T15:15:57.037845Z","shell.execute_reply.started":"2024-11-28T15:15:50.916115Z","shell.execute_reply":"2024-11-28T15:15:57.036701Z"}},"outputs":[],"execution_count":12},{"cell_type":"markdown","source":"System Message and Task Prompt","metadata":{}},{"cell_type":"code","source":"print(\n Fore.GREEN\n + f\"AI Assistant sys message:\\n{search_session.assistant_sys_msg}\\n\"\n)\nprint(Fore.BLUE + f\"AI User sys message:\\n{search_session.user_sys_msg}\\n\")\n\nprint(Fore.YELLOW + f\"Original task prompt:\\n{task_prompt}\\n\")\nprint(\n Fore.CYAN\n + \"Specified task prompt:\"\n + f\"\\n{search_session.specified_task_prompt}\\n\"\n)\nprint(Fore.RED + f\"Final task prompt:\\n{search_session.task_prompt}\\n\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-11-28T15:16:43.372405Z","iopub.execute_input":"2024-11-28T15:16:43.372777Z","iopub.status.idle":"2024-11-28T15:16:43.379273Z","shell.execute_reply.started":"2024-11-28T15:16:43.372743Z","shell.execute_reply":"2024-11-28T15:16:43.378201Z"}},"outputs":[{"name":"stdout","text":"\u001b[32mAI Assistant sys message:\nBaseMessage(role_name='Searcher', role_type=<RoleType.ASSISTANT: 'assistant'>, meta_dict={'task': 'We are in the Apex Legends Games. Determine the amount ofmeele hits it will take to beat someone with a blue shield.You should answer as if you are Pathfinder from the Apex Games.', 'assistant_role': 'Searcher', 'user_role': 'Pathfinder'}, content='===== RULES OF ASSISTANT =====\\nNever forget you are a Searcher and I am a Pathfinder. Never flip roles! Never instruct me!\\nWe share a common interest in collaborating to successfully complete a task.\\nYou must help me to complete the task.\\nHere is the task: We are in the Apex Legends Games. Determine the amount ofmeele hits it will take to beat someone with a blue shield.You should answer as if you are Pathfinder from the Apex Games.. Never forget our task!\\nI must instruct you based on your expertise and my needs to complete the task.\\n\\nI must give you one instruction at a time.\\nYou must write a specific solution that appropriately solves the requested instruction and explain your solutions.\\nYou must decline my instruction honestly if you cannot perform the instruction due to physical, moral, legal reasons or your capability and explain the reasons.\\nUnless I say the task is completed, you should always start with:\\n\\nSolution: <YOUR_SOLUTION>\\n\\n<YOUR_SOLUTION> should be very specific, include detailed explanations and provide preferable detailed implementations and examples and lists for task-solving.\\nAlways end <YOUR_SOLUTION> with: Next request.', video_bytes=None, image_list=None, image_detail='auto', video_detail='low')\n\n\u001b[34mAI User sys message:\nBaseMessage(role_name='Pathfinder', role_type=<RoleType.USER: 'user'>, meta_dict={'task': 'We are in the Apex Legends Games. Determine the amount ofmeele hits it will take to beat someone with a blue shield.You should answer as if you are Pathfinder from the Apex Games.', 'assistant_role': 'Searcher', 'user_role': 'Pathfinder'}, content='===== RULES OF USER =====\\nNever forget you are a Pathfinder and I am a Searcher. Never flip roles! You will always instruct me.\\nWe share a common interest in collaborating to successfully complete a task.\\nI must help you to complete the task.\\nHere is the task: We are in the Apex Legends Games. Determine the amount ofmeele hits it will take to beat someone with a blue shield.You should answer as if you are Pathfinder from the Apex Games.. Never forget our task!\\nYou must instruct me based on my expertise and your needs to solve the task ONLY in the following two ways:\\n\\n1. Instruct with a necessary input:\\nInstruction: <YOUR_INSTRUCTION>\\nInput: <YOUR_INPUT>\\n\\n2. Instruct without any input:\\nInstruction: <YOUR_INSTRUCTION>\\nInput: None\\n\\nThe \"Instruction\" describes a task or question. The paired \"Input\" provides further context or information for the requested \"Instruction\".\\n\\nYou must give me one instruction at a time.\\nI must write a response that appropriately solves the requested instruction.\\nI must decline your instruction honestly if I cannot perform the instruction due to physical, moral, legal reasons or my capability and explain the reasons.\\nYou should instruct me not ask me questions.\\nNow you must start to instruct me using the two ways described above.\\nDo not add anything else other than your instruction and the optional corresponding input!\\nKeep giving me instructions and necessary inputs until you think the task is completed.\\nWhen the task is completed, you must only reply with a single word <CAMEL_TASK_DONE>.\\nNever say <CAMEL_TASK_DONE> unless my responses have solved your task.', video_bytes=None, image_list=None, image_detail='auto', video_detail='low')\n\n\u001b[33mOriginal task prompt:\nWe are in the Apex Legends Games. Determine the amount ofmeele hits it will take to beat someone with a blue shield.You should answer as if you are Pathfinder from the Apex Games.\n\n\u001b[36mSpecified task prompt:\nNone\n\n\u001b[31mFinal task prompt:\nWe are in the Apex Legends Games. Determine the amount ofmeele hits it will take to beat someone with a blue shield.You should answer as if you are Pathfinder from the Apex Games.\n\n","output_type":"stream"}],"execution_count":15},{"cell_type":"code","source":"n = 0\ninput_msg = search_session.init_chat()\nwhile n < 50:\n n += 1\n assistant_response, user_response = search_session.step(input_msg)\n\n if assistant_response.terminated:\n print(\n Fore.GREEN\n + (\n \"AI Assistant terminated. Reason: \"\n f\"{assistant_response.info['termination_reasons']}.\"\n )\n )\n break\n if user_response.terminated:\n print(\n Fore.GREEN\n + (\n \"AI User terminated. \"\n f\"Reason: {user_response.info['termination_reasons']}.\"\n )\n )\n break\n\n # Print output from the user\n print_text_animated(\n Fore.BLUE + f\"AI User:\\n\\n{user_response.msg.content}\\n\"\n )\n\n # Print output from the assistant, including any function\n # execution information\n print_text_animated(Fore.GREEN + \"AI Assistant:\")\n tool_calls: List[FunctionCallingRecord] = assistant_response.info[\n 'tool_calls'\n ]\n for func_record in tool_calls:\n print_text_animated(f\"{func_record}\")\n print_text_animated(f\"{assistant_response.msg.content}\\n\")\n\n if \"CAMEL_TASK_DONE\" in user_response.msg.content:\n break\n\n input_msg = assistant_response.msg","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-11-28T15:24:05.523254Z","iopub.execute_input":"2024-11-28T15:24:05.523675Z","iopub.status.idle":"2024-11-28T15:24:36.079290Z","shell.execute_reply.started":"2024-11-28T15:24:05.523637Z","shell.execute_reply":"2024-11-28T15:24:36.077283Z"}},"outputs":[{"name":"stdout","text":"\u001b[34mAI User:\n\nInstruction: Determine the amount of melee damage required to break a blue shield. \nInput: None\n\n\n\u001b[32mAI Assistant:\n\nSolution: To determine the amount of melee damage required to break a blue shield in Apex Legends, we first need to understand the mechanics of shields in the game.\n\nIn Apex Legends, shields are categorized by color, with blue shields providing 50 points of protection. Melee attacks deal a fixed amount of damage, which is 30 damage per hit.\n\nTo calculate how many melee hits it would take to break a blue shield, we can use the following formula:\n\n1. **Total Shield Health**: 50 (for blue shield)\n2. **Melee Damage per Hit**: 30\n\nNow, we divide the total shield health by the melee damage per hit:\n\n\\[\n\\text{Number of Hits} = \\frac{\\text{Total Shield Health}}{\\text{Melee Damage per Hit}} = \\frac{50}{30} \\approx 1.67\n\\]\n\nSince you cannot hit a fraction of a time, you will need to round up to the nearest whole number. Therefore, it will take **2 melee hits** to break a blue shield.\n\nNext request.\n\n\n\u001b[34mAI User:\n\nInstruction:","output_type":"stream"},{"traceback":["\u001b[0;31m---------------------------------------------------------------------------\u001b[0m","\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)","Cell \u001b[0;32mIn[17], line 27\u001b[0m\n\u001b[1;32m 24\u001b[0m \u001b[38;5;28;01mbreak\u001b[39;00m\n\u001b[1;32m 26\u001b[0m \u001b[38;5;66;03m# Print output from the user\u001b[39;00m\n\u001b[0;32m---> 27\u001b[0m \u001b[43mprint_text_animated\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 28\u001b[0m \u001b[43m \u001b[49m\u001b[43mFore\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mBLUE\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m+\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;124;43mf\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mAI User:\u001b[39;49m\u001b[38;5;130;43;01m\\n\u001b[39;49;00m\u001b[38;5;130;43;01m\\n\u001b[39;49;00m\u001b[38;5;132;43;01m{\u001b[39;49;00m\u001b[43muser_response\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmsg\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcontent\u001b[49m\u001b[38;5;132;43;01m}\u001b[39;49;00m\u001b[38;5;130;43;01m\\n\u001b[39;49;00m\u001b[38;5;124;43m\"\u001b[39;49m\n\u001b[1;32m 29\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 31\u001b[0m \u001b[38;5;66;03m# Print output from the assistant, including any function\u001b[39;00m\n\u001b[1;32m 32\u001b[0m \u001b[38;5;66;03m# execution information\u001b[39;00m\n\u001b[1;32m 33\u001b[0m print_text_animated(Fore\u001b[38;5;241m.\u001b[39mGREEN \u001b[38;5;241m+\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mAI Assistant:\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n","File \u001b[0;32m/opt/conda/lib/python3.10/site-packages/camel/utils/commons.py:61\u001b[0m, in \u001b[0;36mprint_text_animated\u001b[0;34m(text, delay, end)\u001b[0m\n\u001b[1;32m 59\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m char \u001b[38;5;129;01min\u001b[39;00m text:\n\u001b[1;32m 60\u001b[0m \u001b[38;5;28mprint\u001b[39m(char, end\u001b[38;5;241m=\u001b[39mend, flush\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[0;32m---> 61\u001b[0m \u001b[43mtime\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msleep\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdelay\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 62\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m'\u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;124m'\u001b[39m)\n","\u001b[0;31mKeyboardInterrupt\u001b[0m: "],"ename":"KeyboardInterrupt","evalue":"","output_type":"error"}],"execution_count":17},{"cell_type":"code","source":"agentops.end_session(\"Success\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-11-28T15:24:46.645755Z","iopub.execute_input":"2024-11-28T15:24:46.646196Z","iopub.status.idle":"2024-11-28T15:24:48.457533Z","shell.execute_reply.started":"2024-11-28T15:24:46.646157Z","shell.execute_reply":"2024-11-28T15:24:48.456367Z"}},"outputs":[{"name":"stderr","text":"🖇 AgentOps: This run's cost $0.001192\n🖇 AgentOps: \u001b[34m\u001b[34mSession Replay: https://app.agentops.ai/drilldown?session_id=5052a276-92eb-46c2-b606-45630ad99b91\u001b[0m\u001b[0m\n","output_type":"stream"}],"execution_count":18}]}
Loading
Loading