Spaces:
Sleeping
Sleeping
File size: 4,905 Bytes
e9b42f3 |
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 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
import streamlit as st
import re
import openai
from paraphrase_post import get_original_url , paraphrased_post
from advance_post import google_search , advanced_post
from langchain.chat_models import ChatOpenAI
from langchain_groq import ChatGroq
# from langchain.llms import HuggingFaceHub
def main():
st.title("LinkedIn Post Creator")
# Initialize SessionState dictionary
session_state = st.session_state
if 'paraphrase' not in session_state:
session_state.paraphrase = ""
if 'keywords' not in session_state:
session_state.keywords = ""
if 'take_aways' not in session_state:
session_state.take_aways = ""
if 'highlights' not in session_state:
session_state.highlights = ""
if 'advancepost' not in session_state:
session_state.advancepost = ""
url = st.sidebar.text_input("Enter URL:", placeholder="Enter URL here...")
option = st.sidebar.selectbox('Select Model:', ('GPT-4',))
temperature= st.sidebar.select_slider(
'How much accurate post you want ?',
options=['Less accuracy', 9, 8, 7, 6, 5,4,3 ,2,1,'High accuracy'])
if temperature=='Less accuracy':
temperature=10
elif temperature=="High accuracy":
temperature=0
temperature=temperature/10
if option=="GPT-4":
api_key=st.sidebar.text_input("API Key:",placeholder="Enter OpenAI API Key...")
if api_key:
model=ChatOpenAI(model="gpt-4-turbo-preview" , temperature=temperature , api_key=api_key)
if st.sidebar.button("Submit"):
if url:
if api_key:
original_url = get_original_url(url)
match = re.match(r"https?://(?:www\.)?linkedin\.com/(posts|feed|pulse)/.*", original_url) # checking domain and url page (means it should only be a post nothing else like login page or something else)
if match:
try:
session_state.paraphrase, session_state.keywords, session_state.take_aways, session_state.highlights = paraphrased_post(url , model)
except (openai.AuthenticationError) as e:
st.sidebar.error("Enter your valid API key")
else:
st.sidebar.error("Put a valid LinkedIn post url only")
else:
st.sidebar.error("Please enter API Key")
else:
st.sidebar.error("Please enter url")
paraphrase_text=st.text_area("Generated LinkedIn post",value=session_state.paraphrase, height=400)
# import pyperclip
# if st.button('Copy'):
# pyperclip.copy(paraphrase_text)
# st.success('Text copied successfully!')
if st.sidebar.toggle("Show Details") and session_state.keywords:
st.write("Keywords:")
for i, statement in enumerate(session_state.keywords, start=1):
st.write(f"{i}. {statement}")
st.write("Take Aways:")
for i, statement in enumerate(session_state.take_aways, start=1):
st.write(f"{i}. {statement}")
st.write("Highlights:")
for i, statement in enumerate(session_state.highlights, start=1):
st.write(f"{i}. {statement}")
#------------------------------------------------------------Advance LinkedIn post code below-----------------------------------------------------------------
if st.sidebar.toggle("Advance LinkedIn Post"):
google_api_key=st.sidebar.text_input("Google API Key:",placeholder="Enter Google Search API Key...")
search_engine_id=st.sidebar.text_input("Search Engine ID:",placeholder="Enter Search Engine ID...")
google_api_key = "AIzaSyDh-lkJh2Zef0t6UVqSu_w3njpucx40mDc"
search_engine_id = "44bbd32a2b2fc4418"
if st.sidebar.button("Generate Advance Post"):
if google_api_key:
if search_engine_id:
all_links =google_search(session_state.paraphrase ,model , google_api_key,search_engine_id)
session_state.advancepost , docs=advanced_post(all_links ,model ,session_state.paraphrase)
if len(docs)==0:
st.sidebar.error("Please Check your both credentials carefully")
else:
st.sidebar.error("Please enter Search Engine ID")
else:
st.sidebar.error("Please enter Google API Key")
advance_post=st.text_area("Advance LinkedIn post",value=session_state.advancepost, height=400)
# if st.button('Copy Advanced Post'):
# pyperclip.copy(advance_post)
# st.success('Text copied successfully!')
#--------------------------------------------------------------------------------------------------------------------------------------------------------------
if __name__ == "__main__":
main()
|