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