Skip to content

Commit 329dd23

Browse files
committed
feat: add collection type and clean chat context
1 parent d0d957d commit 329dd23

10 files changed

+230
-66
lines changed

examples/assistant/chat_with_assistant.ipynb

+78-64
Original file line numberDiff line numberDiff line change
@@ -2,43 +2,49 @@
22
"cells": [
33
{
44
"cell_type": "code",
5+
"execution_count": null,
56
"id": "initial_id",
67
"metadata": {
78
"collapsed": true
89
},
10+
"outputs": [],
911
"source": [
1012
"import time\n",
1113
"import taskingai\n",
1214
"# Load TaskingAI API Key from environment variable"
13-
],
14-
"outputs": [],
15-
"execution_count": null
15+
]
1616
},
1717
{
1818
"cell_type": "markdown",
19+
"id": "4ca20b4a868dedd8",
20+
"metadata": {
21+
"collapsed": false
22+
},
1923
"source": [
2024
"# TaskingAI: Chat with Assistant Example\n",
2125
"\n",
2226
"In this example, we will first create an assistant who knows the meaning of various numbers and will explain it in certain language.\n",
2327
"Then we will start a chat with the assistant."
24-
],
25-
"metadata": {
26-
"collapsed": false
27-
},
28-
"id": "4ca20b4a868dedd8"
28+
]
2929
},
3030
{
3131
"cell_type": "markdown",
32-
"source": [
33-
"## Create Assistant"
34-
],
32+
"id": "5e19ac923d84e898",
3533
"metadata": {
3634
"collapsed": false
3735
},
38-
"id": "5e19ac923d84e898"
36+
"source": [
37+
"## Create Assistant"
38+
]
3939
},
4040
{
4141
"cell_type": "code",
42+
"execution_count": null,
43+
"id": "3b2fda39ba58c5e9",
44+
"metadata": {
45+
"collapsed": false
46+
},
47+
"outputs": [],
4248
"source": [
4349
"from taskingai.tool import Action, ActionAuthentication, ActionAuthenticationType\n",
4450
"from typing import List\n",
@@ -96,16 +102,16 @@
96102
")\n",
97103
"action = actions[0]\n",
98104
"print(f\"created action: {action}\\n\")"
99-
],
105+
]
106+
},
107+
{
108+
"cell_type": "code",
109+
"execution_count": null,
110+
"id": "3b3df0f232021283",
100111
"metadata": {
101112
"collapsed": false
102113
},
103-
"id": "3b2fda39ba58c5e9",
104114
"outputs": [],
105-
"execution_count": null
106-
},
107-
{
108-
"cell_type": "code",
109115
"source": [
110116
"from taskingai.assistant import Assistant, Chat, ToolRef, ToolType\n",
111117
"from taskingai.assistant.memory import AssistantMessageWindowMemory\n",
@@ -135,41 +141,41 @@
135141
" metadata={\"k\": \"v\"},\n",
136142
")\n",
137143
"print(f\"created assistant: {assistant}\\n\")"
138-
],
139-
"metadata": {
140-
"collapsed": false
141-
},
142-
"id": "3b3df0f232021283",
143-
"outputs": [],
144-
"execution_count": null
144+
]
145145
},
146146
{
147147
"cell_type": "markdown",
148-
"source": [
149-
"## Start a Chat "
150-
],
148+
"id": "8e7c1b9461f0a344",
151149
"metadata": {
152150
"collapsed": false
153151
},
154-
"id": "8e7c1b9461f0a344"
152+
"source": [
153+
"## Start a Chat "
154+
]
155155
},
156156
{
157157
"cell_type": "code",
158+
"execution_count": null,
159+
"id": "f1e2f0b2af8b1d8d",
160+
"metadata": {
161+
"collapsed": false
162+
},
163+
"outputs": [],
158164
"source": [
159165
"chat: Chat = taskingai.assistant.create_chat(\n",
160166
" assistant_id=assistant.assistant_id,\n",
161167
")\n",
162168
"print(f\"created chat: {chat.chat_id}\\n\")"
163-
],
169+
]
170+
},
171+
{
172+
"cell_type": "code",
173+
"execution_count": null,
174+
"id": "b26e30b79b71697a",
164175
"metadata": {
165176
"collapsed": false
166177
},
167-
"id": "f1e2f0b2af8b1d8d",
168178
"outputs": [],
169-
"execution_count": null
170-
},
171-
{
172-
"cell_type": "code",
173179
"source": [
174180
"from taskingai.assistant import Message, MessageChunk\n",
175181
"user_input = input(\"User Input: \")\n",
@@ -181,7 +187,7 @@
181187
" text=user_input,\n",
182188
" )\n",
183189
" print(f\"User: {user_input}\")\n",
184-
" \n",
190+
"\n",
185191
" # generate assistant response\n",
186192
" assistant_message: Message = taskingai.assistant.generate_message(\n",
187193
" assistant_id=assistant.assistant_id,\n",
@@ -194,16 +200,16 @@
194200
" time.sleep(2)\n",
195201
" # quit by input 'q\n",
196202
" user_input = input(\"User: \")"
197-
],
203+
]
204+
},
205+
{
206+
"cell_type": "code",
207+
"execution_count": null,
208+
"id": "c7d73e0b138e3eba",
198209
"metadata": {
199210
"collapsed": false
200211
},
201-
"id": "b26e30b79b71697a",
202212
"outputs": [],
203-
"execution_count": null
204-
},
205-
{
206-
"cell_type": "code",
207213
"source": [
208214
"user_input = input(\"User Input: \")\n",
209215
"while user_input.strip() and user_input != \"q\":\n",
@@ -214,7 +220,7 @@
214220
" text=user_input,\n",
215221
" )\n",
216222
" print(f\"User: {user_input} ({user_message.message_id})\")\n",
217-
" \n",
223+
"\n",
218224
" # generate assistant response\n",
219225
" assistant_message_response = taskingai.assistant.generate_message(\n",
220226
" assistant_id=assistant.assistant_id,\n",
@@ -224,27 +230,27 @@
224230
" },\n",
225231
" stream=True,\n",
226232
" )\n",
227-
" \n",
233+
"\n",
228234
" print(f\"Assistant:\", end=\" \", flush=True)\n",
229235
" for item in assistant_message_response:\n",
230236
" if isinstance(item, MessageChunk):\n",
231237
" print(item.delta, end=\"\", flush=True)\n",
232238
" elif isinstance(item, Message):\n",
233239
" print(f\" ({item.message_id})\")\n",
234-
" \n",
240+
"\n",
235241
" time.sleep(2)\n",
236242
" # quit by input 'q\n",
237243
" user_input = input(\"User: \")"
238-
],
244+
]
245+
},
246+
{
247+
"cell_type": "code",
248+
"execution_count": null,
249+
"id": "e94e3adb0d15373b",
239250
"metadata": {
240251
"collapsed": false
241252
},
242-
"id": "c7d73e0b138e3eba",
243253
"outputs": [],
244-
"execution_count": null
245-
},
246-
{
247-
"cell_type": "code",
248254
"source": [
249255
"# list messages\n",
250256
"messages = taskingai.assistant.list_messages(\n",
@@ -254,28 +260,36 @@
254260
")\n",
255261
"for message in messages:\n",
256262
" print(f\"{message.role}: {message.content.text}\")"
257-
],
263+
]
264+
},
265+
{
266+
"cell_type": "code",
267+
"execution_count": null,
268+
"id": "ed39836bbfdc7a4e",
258269
"metadata": {
259270
"collapsed": false
260271
},
261-
"id": "e94e3adb0d15373b",
262272
"outputs": [],
263-
"execution_count": null
264-
},
265-
{
266-
"cell_type": "code",
267273
"source": [
268274
"# delete assistant\n",
269275
"taskingai.assistant.delete_assistant(\n",
270276
" assistant_id=assistant.assistant_id,\n",
271277
")"
272-
],
273-
"metadata": {
274-
"collapsed": false
275-
},
276-
"id": "ed39836bbfdc7a4e",
278+
]
279+
},
280+
{
281+
"cell_type": "code",
282+
"execution_count": null,
283+
"id": "3a67261c",
284+
"metadata": {},
277285
"outputs": [],
278-
"execution_count": null
286+
"source": [
287+
"# clean chat context\n",
288+
"taskingai.assistant.clean_chat_context(\n",
289+
" assistant_id=\"YOUR_ASSISTANT_ID\",\n",
290+
" chat_id=\"YOUR_CHAT_ID\",\n",
291+
")"
292+
]
279293
}
280294
],
281295
"metadata": {
@@ -294,7 +308,7 @@
294308
"name": "python",
295309
"nbconvert_exporter": "python",
296310
"pygments_lexer": "ipython2",
297-
"version": "2.7.6"
311+
"version": "3.10.14"
298312
}
299313
},
300314
"nbformat": 4,

taskingai/assistant/assistant.py

+24
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
"a_create_assistant",
2525
"a_update_assistant",
2626
"a_delete_assistant",
27+
"clean_chat_context",
28+
"a_clean_chat_context",
2729
]
2830

2931
AssistantTool = ToolRef
@@ -344,3 +346,25 @@ async def a_delete_assistant(assistant_id: str) -> None:
344346
"""
345347

346348
await async_api_delete_assistant(assistant_id=assistant_id)
349+
350+
351+
def clean_chat_context(assistant_id: str, chat_id: str) -> None:
352+
"""
353+
Clean chat context.
354+
355+
:param assistant_id: The ID of the assistant.
356+
:param chat_id: The ID of the chat.
357+
"""
358+
359+
api_clean_chat_context(assistant_id=assistant_id, chat_id=chat_id)
360+
361+
362+
async def a_clean_chat_context(assistant_id: str, chat_id: str) -> None:
363+
"""
364+
Clean chat context in async mode.
365+
366+
:param assistant_id: The ID of the assistant.
367+
:param chat_id: The ID of the chat.
368+
"""
369+
370+
await async_api_clean_chat_context(assistant_id=assistant_id, chat_id=chat_id)

taskingai/client/apis/__init__.py

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
from .api_bulk_create_actions import *
1515
from .api_chat_completion import *
16+
from .api_clean_chat_context import *
1617
from .api_create_assistant import *
1718
from .api_create_chat import *
1819
from .api_create_chunk import *

0 commit comments

Comments
 (0)