Tonic commited on
Commit
738a35e
Β·
1 Parent(s): 86a6e5e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +44 -1
app.py CHANGED
@@ -8,6 +8,13 @@ import gradio
8
  from gradio_client import Client
9
  import autogen
10
  import panel as pn
 
 
 
 
 
 
 
11
  from autogen_utils import (
12
  MathUserProxyAgent,
13
  RetrieveUserProxyAgent,
@@ -21,6 +28,29 @@ from custom_widgets import RowAgentWidget
21
  from panel.chat import ChatInterface
22
  from panel.widgets import Button, CodeEditor, PasswordInput, Switch, TextInput
23
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24
  pn.extension("codeeditor")
25
  template = pn.template.BootstrapTemplate(title=TITLE)
26
 
@@ -316,7 +346,18 @@ def init_groupchat(event, collection_name):
316
  return agents, manager, groupchat
317
 
318
 
319
- async def agents_chat(init_sender, manager, contents, agents):
 
 
 
 
 
 
 
 
 
 
 
320
  recipient = (
321
  manager
322
  if len(agents) > 2
@@ -324,6 +365,8 @@ async def agents_chat(init_sender, manager, contents, agents):
324
  if agents[1] != init_sender
325
  else agents[0]
326
  )
 
 
327
  if isinstance(init_sender, (RetrieveUserProxyAgent, MathUserProxyAgent)):
328
  await init_sender.a_initiate_chat(recipient, problem=contents)
329
  else:
 
8
  from gradio_client import Client
9
  import autogen
10
  import panel as pn
11
+ import os
12
+ from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig
13
+ from unstructured.ingest.runner import LocalRunner
14
+ from unstructured.partition.auto import partition
15
+ from langchain.document_loaders import UnstructuredFileLoader
16
+
17
+
18
  from autogen_utils import (
19
  MathUserProxyAgent,
20
  RetrieveUserProxyAgent,
 
28
  from panel.chat import ChatInterface
29
  from panel.widgets import Button, CodeEditor, PasswordInput, Switch, TextInput
30
 
31
+ def process_file_with_unstructured(file_path):
32
+ # Set up the LocalRunner
33
+ runner = LocalRunner(
34
+ processor_config=ProcessorConfig(
35
+ verbose=True,
36
+ output_dir="local-ingest-output",
37
+ num_processes=2,
38
+ ),
39
+ read_config=ReadConfig(),
40
+ partition_config=PartitionConfig(
41
+ partition_by_api=True,
42
+ api_key=os.getenv("UNSTRUCTURED_API_KEY"),
43
+ ),
44
+ )
45
+ runner.run(input_path=file_path, recursive=True)
46
+ elements = partition(filename=file_path, content_type="application/pdf")
47
+ loader = UnstructuredFileLoader(file_path)
48
+ docs = loader.load()
49
+ raw_text = docs[0].page_content
50
+
51
+ return raw_text
52
+
53
+
54
  pn.extension("codeeditor")
55
  template = pn.template.BootstrapTemplate(title=TITLE)
56
 
 
346
  return agents, manager, groupchat
347
 
348
 
349
+ async def agents_chat(init_sender, manager, contents, agents, RAG):
350
+ # Check if a file is uploaded
351
+ if RAG.value:
352
+ # Save the file and process it
353
+ file_path = "path/to/saved/file" # Define the path to save the uploaded file
354
+ RAG.save(file_path)
355
+ raw_text = process_file_with_unstructured(file_path)
356
+
357
+ # Prepend the extracted text to the contents
358
+ contents = raw_text + ' ' + contents
359
+
360
+ # Determine the recipient
361
  recipient = (
362
  manager
363
  if len(agents) > 2
 
365
  if agents[1] != init_sender
366
  else agents[0]
367
  )
368
+
369
+ # Initiate chat
370
  if isinstance(init_sender, (RetrieveUserProxyAgent, MathUserProxyAgent)):
371
  await init_sender.a_initiate_chat(recipient, problem=contents)
372
  else: