translators-will commited on
Commit
acae579
·
verified ·
1 Parent(s): 6e5c872

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +65 -65
app.py CHANGED
@@ -1,66 +1,66 @@
1
- # Imports
2
- from chromadb import Client, Settings
3
- from langchain.vectorstores import Chroma
4
- from langchain.embeddings import SentenceTransformerEmbeddings
5
- import streamlit as st
6
- import requests
7
-
8
- # Vector Store setup
9
- def init_vector_store():
10
- embeddings = SentenceTransformerEmbeddings('paraphrase-MiniLM-L6-v2')
11
- client = Client(Settings(
12
- persist_directory = "./chroma_db"
13
- ))
14
- return Chroma(
15
- client=client,
16
- embeddings=embeddings
17
- )
18
-
19
- # Document processing
20
- from langchain.text_splitter import RecursiveCharacterTextSplitter
21
- from langchain.document_loaders import TextLoader, PyPDFLoader
22
-
23
- def process_documents(file_path):
24
- # Determine loader based on file extension
25
- loader = TextLoader() if file_path.endswith('.txt') else PyPDFLoader()
26
-
27
- # Load and split documents
28
- splitter = RecursiveCharacterTextSplitter(
29
- chunk_size = 1000,
30
- chunk_overlap = 100
31
- )
32
-
33
- docs = loader.load()
34
- chunks = splitter.split_documents(docs)
35
- return chunks
36
-
37
- # Prompt Template Management
38
- from langchain.prompts import PromptTemplate
39
-
40
- class PromptOptimizer:
41
- def __init__(self):
42
- self.base_template = PromptTemplate(
43
- input_variables=["context", "prompt"],
44
- template = "Use the following context to enhance the prompt provided."
45
- template += "Context: {context}\n"
46
- template += "Prompt: {prompt}\n"
47
- template += "Generate an enhanced prompt that leverages the context provided\
48
- while maintaining the original intent of the prompt."
49
- )
50
-
51
- def optimize_prompt(self, context, prompt):
52
- return self.base_template.render(context=context, prompt=prompt)
53
-
54
- # Streamlit frontend
55
- st.title("RAG-based Prompt Enhancer")
56
-
57
- # File upload
58
- uploaded_file = st.file_uploader("Choose a file")
59
- if uploaded_file:
60
- files = {"file": uploaded_file}
61
- response = requests.post("http://localhost:8000/upload", files=files)
62
-
63
- prompt = st.text_area("Enter a prompt you'd like to enhance:")
64
- if st.button("Enhance Prompt"):
65
- st.write("Enhanced Prompt:")
66
  st.write(response.json()["enhanced_prompt"])
 
1
+ # Imports
2
+ from chromadb import Client, Settings
3
+ from langchain.vectorstores import Chroma
4
+ from langchain.embeddings import SentenceTransformerEmbeddings
5
+ import streamlit as st
6
+ import requests
7
+
8
+ # Vector Store setup
9
+ def init_vector_store():
10
+ embeddings = SentenceTransformerEmbeddings('paraphrase-MiniLM-L6-v2')
11
+ client = Client(Settings(
12
+ persist_directory = "./chroma_db"
13
+ ))
14
+ return Chroma(
15
+ client=client,
16
+ embeddings=embeddings
17
+ )
18
+
19
+ # Document processing
20
+ from langchain.text_splitter import RecursiveCharacterTextSplitter
21
+ from langchain.document_loaders import TextLoader, PyPDFLoader
22
+
23
+ def process_documents(file_path):
24
+ # Determine loader based on file extension
25
+ loader = TextLoader() if file_path.endswith('.txt') else PyPDFLoader()
26
+
27
+ # Load and split documents
28
+ splitter = RecursiveCharacterTextSplitter(
29
+ chunk_size = 1000,
30
+ chunk_overlap = 100
31
+ )
32
+
33
+ docs = loader.load()
34
+ chunks = splitter.split_documents(docs)
35
+ return chunks
36
+
37
+ # Prompt Template Management
38
+ from langchain.prompts import PromptTemplate
39
+
40
+ class PromptOptimizer:
41
+ def __init__(self):
42
+ self.base_template = PromptTemplate(
43
+ input_variables=["context", "prompt"],
44
+ template = "Use the following context to enhance the prompt provided." + \
45
+ "Context: {context}\n" + \
46
+ "Prompt: {prompt}\n" + \
47
+ "Generate an enhanced prompt that leverages the context provided " + \
48
+ "while maintaining the original intent of the prompt."
49
+ )
50
+
51
+ def optimize_prompt(self, context, prompt):
52
+ return self.base_template.render(context=context, prompt=prompt)
53
+
54
+ # Streamlit frontend
55
+ st.title("RAG-based Prompt Enhancer")
56
+
57
+ # File upload
58
+ uploaded_file = st.file_uploader("Choose a file")
59
+ if uploaded_file:
60
+ files = {"file": uploaded_file}
61
+ response = requests.post("http://localhost:8000/upload", files=files)
62
+
63
+ prompt = st.text_area("Enter a prompt you'd like to enhance:")
64
+ if st.button("Enhance Prompt"):
65
+ st.write("Enhanced Prompt:")
66
  st.write(response.json()["enhanced_prompt"])