Linh Vuu commited on
Commit
ec677f8
1 Parent(s): b7d8dec

updated code

Browse files
Files changed (1) hide show
  1. app.py +26 -25
app.py CHANGED
@@ -56,41 +56,47 @@ def get_news(topic):
56
  print("Error occured during API Request", e)
57
 
58
 
59
- class AssistantManager:
60
  thread_id = None
61
  assistant_id = None
62
 
63
- def __init__(self, model: str = model):
64
  self.client = client
65
  self.model = model
66
- self.assistant = None
67
- self.thread = None
68
  self.run = None
69
  self.summary = None
 
 
70
 
71
- # Retrieve existing assistant and thread if IDs are already set
72
- if AssistantManager.assistant_id:
73
- self.assistant = self.client.beta.assistants.retrieve(
74
- assistant_id=AssistantManager.assistant_id
75
- )
76
- if AssistantManager.thread_id:
77
  self.thread = self.client.beta.threads.retrieve(
78
- thread_id=AssistantManager.thread_id
79
  )
80
 
81
  def create_assistant(self, name, instructions, tools):
82
- if not self.assistant:
 
 
 
 
 
 
 
83
  assistant_obj = self.client.beta.assistants.create(
84
  name=name, instructions=instructions, tools=tools, model=self.model
85
  )
86
- AssistantManager.assistant_id = assistant_obj.id
87
  self.assistant = assistant_obj
88
- print(f"AssisID:::: {self.assistant.id}")
 
 
 
89
 
90
  def create_thread(self):
91
  if not self.thread:
92
  thread_obj = self.client.beta.threads.create()
93
- AssistantManager.thread_id = thread_obj.id
94
  self.thread = thread_obj
95
  print(f"ThreadID::: {self.thread.id}")
96
 
@@ -121,11 +127,6 @@ class AssistantManager:
121
  self.summary = "\n".join(summary)
122
  print(f"SUMMARY-----> {role.capitalize()}: ==> {response}")
123
 
124
- # for msg in messages:
125
- # role = msg.role
126
- # content = msg.content[0].text.value
127
- # print(f"SUMMARY-----> {role.capitalize()}: ==> {content}")
128
-
129
  def call_required_functions(self, required_actions):
130
  if not self.run:
131
  return
@@ -183,17 +184,17 @@ class AssistantManager:
183
 
184
 
185
  def main():
186
- news = get_news("bitcoin")
187
- print(news[0])
188
-
189
- manager = AssistantManager()
190
 
 
 
 
 
191
  # Streamlit interface
192
  st.title("News Summariser")
193
 
194
  # Note that API key's running out of budget
195
  contact_url = "https://www.linkedin.com/in/linhvuu"
196
- st.write("I am running out of energy. Please contact [my assistant](%s) to wake me up." % contact_url)
197
 
198
  with st.form(key="user_input_form"):
199
  instructions = st.text_input("Enter topic:")
 
56
  print("Error occured during API Request", e)
57
 
58
 
59
+ class AssistantManager ():
60
  thread_id = None
61
  assistant_id = None
62
 
63
+ def __init__(self, model: str = model, assistant_id = None, thread_id = None):
64
  self.client = client
65
  self.model = model
 
 
66
  self.run = None
67
  self.summary = None
68
+ self.assistant_id = assistant_id
69
+ self.thread = thread_id
70
 
71
+ # Retrieve existing thread if IDs are already set
72
+ if self.thread_id:
 
 
 
 
73
  self.thread = self.client.beta.threads.retrieve(
74
+ thread_id=self.thread_id
75
  )
76
 
77
  def create_assistant(self, name, instructions, tools):
78
+
79
+ # Retrieve existing assistant and thread if IDs are already set
80
+ try:
81
+ self.assistant = self.client.beta.assistants.retrieve(
82
+ assistant_id=self.assistant_id
83
+ )
84
+ except openai.NotFoundError:
85
+ # If the assistant doesn't exist, create a new one
86
  assistant_obj = self.client.beta.assistants.create(
87
  name=name, instructions=instructions, tools=tools, model=self.model
88
  )
89
+ self.assistant_id = assistant_obj.id
90
  self.assistant = assistant_obj
91
+ print(f"Created new assistant with ID: {self.assistant.id}")
92
+ except Exception as e:
93
+ # If any other error occurs, raise the error
94
+ raise e
95
 
96
  def create_thread(self):
97
  if not self.thread:
98
  thread_obj = self.client.beta.threads.create()
99
+ self.thread_id = thread_obj.id
100
  self.thread = thread_obj
101
  print(f"ThreadID::: {self.thread.id}")
102
 
 
127
  self.summary = "\n".join(summary)
128
  print(f"SUMMARY-----> {role.capitalize()}: ==> {response}")
129
 
 
 
 
 
 
130
  def call_required_functions(self, required_actions):
131
  if not self.run:
132
  return
 
184
 
185
 
186
  def main():
 
 
 
 
187
 
188
+ manager = AssistantManager(assistant_id = 'asst_7adqkvmsU2ovkQsPiBFbh5yV')
189
+ # asst_lGnxol2MqmLr4x6OA4xJYXAq me
190
+ # asst_7adqkvmsU2ovkQsPiBFbh5yV Charles
191
+
192
  # Streamlit interface
193
  st.title("News Summariser")
194
 
195
  # Note that API key's running out of budget
196
  contact_url = "https://www.linkedin.com/in/linhvuu"
197
+ st.write("If no result returns, it means I am running out of energy. Please contact [Linh Vuu](%s) to wake me up." % contact_url)
198
 
199
  with st.form(key="user_input_form"):
200
  instructions = st.text_input("Enter topic:")