Skip to content

Commit 2d94cd4

Browse files
committed
fix: assistant object
1 parent d393a57 commit 2d94cd4

File tree

1 file changed

+59
-0
lines changed

1 file changed

+59
-0
lines changed

assistant_manager.py

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
from typing import Optional
2+
3+
4+
class AssistantManager:
5+
def __init__(self, client):
6+
self.client = client
7+
8+
async def list_assistants(self):
9+
response = await self.client.beta.assistants.list()
10+
return {assistant.name: assistant.id for assistant in response.data}
11+
12+
async def retrieve_assistant(self, assistant_id: str):
13+
return await self.client.beta.assistants.retrieve(assistant_id)
14+
15+
async def create_assistant(self, name: str, instructions: str, tools: list, model: str):
16+
return await self.client.beta.assistants.create(
17+
name=name,
18+
instructions=instructions,
19+
tools=tools,
20+
model=model
21+
)
22+
23+
async def update_assistant(self, assistant_id: str, name: Optional[str] = None, description: Optional[str] = None,
24+
instructions: Optional[str] = None, tools: Optional[list] = None):
25+
update_fields = {}
26+
if name is not None:
27+
update_fields['name'] = name
28+
if description is not None:
29+
update_fields['description'] = description
30+
if instructions is not None:
31+
update_fields['instructions'] = instructions
32+
if tools is not None:
33+
update_fields['tools'] = tools
34+
return await self.client.beta.assistants.update(assistant_id, **update_fields)
35+
36+
async def delete_assistant(self, assistant_id: str):
37+
return await self.client.beta.assistants.delete(assistant_id)
38+
39+
async def create_assistant_file(self, assistant_id: str, file_id: str):
40+
return await self.client.beta.assistants.files.create(assistant_id=assistant_id, file_id=file_id)
41+
42+
async def delete_assistant_file(self, assistant_id: str, file_id: str):
43+
return await self.client.beta.assistants.files.delete(assistant_id, file_id)
44+
45+
async def list_assistant_files(self, assistant_id: str):
46+
return await self.client.beta.assistants.files.list(assistant_id)
47+
48+
async def get_assistant_id_by_name(self, name: str):
49+
"""
50+
Get the ID of an assistant by its name.
51+
52+
Args:
53+
name (str): The name of the assistant.
54+
55+
Returns:
56+
str: The ID of the assistant if found, otherwise None.
57+
"""
58+
assistants = await self.list_assistants()
59+
return assistants.get(name)

0 commit comments

Comments
 (0)