|
import streamlit as st |
|
import pandas as pd |
|
import numpy as np |
|
import os |
|
from glob import glob |
|
import subprocess |
|
|
|
st.title('Welcome to introspector lang_agent!!') |
|
|
|
|
|
limit = st.number_input("limit",value=40) |
|
url = st.text_input("url",value="http://localhost:11434") |
|
prompt = st.text_input("prompt",value="Consider this text as a creative writing prompt: ") |
|
|
|
source_data = st.selectbox( |
|
'What data source should we read', |
|
( |
|
'/data', |
|
'/mnt/data1/2024/02/12/meta-coq-common/', |
|
)) |
|
|
|
st.write('You selected:', source_data) |
|
|
|
|
|
|
|
|
|
|
|
def get_files(path='.'): |
|
"""Recursive function to find all files in given directory path.""" |
|
files = [] |
|
for item in os.listdir(path): |
|
fp = os.path.join(path, item) |
|
if os.path.isdir(fp): |
|
files.append(fp) |
|
files += get_files(fp) |
|
return files |
|
|
|
files = get_files(source_data) |
|
if len(files) > limit: |
|
files = files[0:limit] |
|
|
|
|
|
mode = st.selectbox("mode", [ |
|
"--ollama", |
|
"--openai", |
|
|
|
]) |
|
model = st.selectbox("model", ["mistral","mixtral"]) |
|
|
|
input_dir = st.selectbox("Select a file", files) |
|
st.write(f"You selected file: {input_dir}") |
|
|
|
if st.button("Process data"): |
|
prompt = prompt.replace("\"","\'") |
|
cmd = ["bash", |
|
"./run_agent.sh", |
|
input_dir, |
|
url, |
|
mode, |
|
model, |
|
"\"{prompt}\""] |
|
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE) |
|
|
|
for line in proc.stdout: |
|
st.write(line) |
|
|