maartenbreddels commited on
Commit
9531d87
1 Parent(s): 80f3e35

chore: explain the hooks

Browse files
Files changed (1) hide show
  1. wanderlust.py +6 -3
wanderlust.py CHANGED
@@ -186,6 +186,7 @@ def ChatInterface():
186
  prompt = solara.use_reactive("")
187
  run_id: solara.Reactive[str] = solara.use_reactive(None)
188
 
 
189
  thread: Thread = solara.use_memo(openai.beta.threads.create, dependencies=[])
190
 
191
  def add_message(value: str):
@@ -196,6 +197,9 @@ def ChatInterface():
196
  thread_id=thread.id, content=value, role="user"
197
  )
198
  messages.set([*messages.value, new_message])
 
 
 
199
  run_id.value = openai.beta.threads.runs.create(
200
  thread_id=thread.id,
201
  assistant_id="asst_RqVKAzaybZ8un7chIwPCIQdH",
@@ -236,12 +240,11 @@ def ChatInterface():
236
  completed = True
237
  time.sleep(0.1)
238
 
 
239
  result = solara.use_thread(poll, dependencies=[run_id.value])
240
 
241
  # Create DOM for chat interface
242
- with solara.Column(
243
- classes=["chat-interface"],
244
- ):
245
  if len(messages.value) > 0:
246
  with ChatBox():
247
  for message in messages.value:
 
186
  prompt = solara.use_reactive("")
187
  run_id: solara.Reactive[str] = solara.use_reactive(None)
188
 
189
+ # Create a thread to hold the conversation only once when this component is created
190
  thread: Thread = solara.use_memo(openai.beta.threads.create, dependencies=[])
191
 
192
  def add_message(value: str):
 
197
  thread_id=thread.id, content=value, role="user"
198
  )
199
  messages.set([*messages.value, new_message])
200
+ # this creates a new run for the thread
201
+ # also also triggers a rerender (since run_id.value changes)
202
+ # which will trigger the poll function blow to start in a thread
203
  run_id.value = openai.beta.threads.runs.create(
204
  thread_id=thread.id,
205
  assistant_id="asst_RqVKAzaybZ8un7chIwPCIQdH",
 
240
  completed = True
241
  time.sleep(0.1)
242
 
243
+ # run/restart a thread any time the run_id changes
244
  result = solara.use_thread(poll, dependencies=[run_id.value])
245
 
246
  # Create DOM for chat interface
247
+ with solara.Column(classes=["chat-interface"]):
 
 
248
  if len(messages.value) > 0:
249
  with ChatBox():
250
  for message in messages.value: