Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| import re | |
| import openai | |
| from paraphrase_post import get_original_url , paraphrased_post | |
| from advance_post import google_search | |
| from langchain_community.chat_models import ChatOpenAI | |
| from langchain_cohere import ChatCohere | |
| from streaming_response import StreamHandler | |
| from blog_post import post_from_content | |
| # from langchain_nvidia_ai_endpoints import ChatNVIDIA | |
| #from langchain 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-4o',"Cohere")) | |
| 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-4o": | |
| api_key=st.sidebar.text_input("API Key:",placeholder="Enter OpenAI API Key...") | |
| if api_key: | |
| model=ChatOpenAI(model="gpt-4o" , temperature=temperature , api_key=api_key , streaming=True, callbacks=[StreamHandler(st.empty())]) | |
| elif option=="Cohere": | |
| api_key= st.sidebar.text_input("API Key:",placeholder="Enter Cohere API Key...") | |
| if api_key: | |
| model = ChatCohere(cohere_api_key=api_key,temperature=temperature , streaming=True, callbacks=[StreamHandler(st.empty())]) | |
| #model = ChatCohere(cohere_api_key=api_key , temperature = temperature , model = "command-r-plus") | |
| # elif option=="Mixtral-8x7b": | |
| # api_key=st.sidebar.text_input("API Key:",placeholder="Enter NVIDIA NIM API Key...") | |
| # if api_key: | |
| # model = ChatNVIDIA(model="mixtral_8x7b",api_key = api_key , temperature=temperature) | |
| # elif option=="Llama-3": | |
| # api_key=st.sidebar.text_input("API Key:",placeholder="Enter HuggingFace API Token...") | |
| # if api_key: | |
| # model=HuggingFaceHub(repo_id="mistralai/Mixtral-8x22B-Instruct-v0.1",huggingfacehub_api_token=api_key ,model_kwargs={"temperature":temperature}) | |
| if st.sidebar.toggle("Normal LinkedIn Post"): | |
| url = st.sidebar.text_input("Enter URL:", placeholder="Enter URL here...") | |
| 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 = 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") | |
| from paraphrase_post import generate_details | |
| if st.sidebar.button("Show Details"): | |
| session_state.keywords =generate_details(session_state.paraphrase , model) | |
| #------------------------------------------------------------Advance LinkedIn post code below----------------------------------------------------------------- | |
| if st.sidebar.toggle("Advance LinkedIn Post"): | |
| url = st.sidebar.text_input("Enter URL", placeholder="Enter URL here...") | |
| 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 = "AIzaSyABoOsfUbydc1AfVf2Zjto4MFWNgjLSJmY" | |
| search_engine_id = "243a392ba3dff442c" | |
| if st.sidebar.button("Generate Advance Post"): | |
| if url: | |
| if api_key: | |
| if option=="GPT-4o": | |
| model=ChatOpenAI(model="gpt-4o" , temperature=temperature , api_key=api_key) | |
| elif option=="Cohere": | |
| model = ChatCohere(cohere_api_key=api_key,temperature=temperature) | |
| if google_api_key: | |
| if search_engine_id: | |
| 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: | |
| with st.spinner("Creating post ,please wait..."): | |
| session_state.advancepost =google_search(url ,model , google_api_key,search_engine_id) | |
| 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 Search Engine ID") | |
| else: | |
| st.sidebar.error("Please enter Google API Key") | |
| else: | |
| st.sidebar.error("Please enter API key") | |
| else: | |
| st.sidebar.error("Please enter url") | |
| advance_post=st.write(session_state.advancepost) | |
| # from streaming_response import StreamHandler | |
| if st.sidebar.toggle("Message"): | |
| content=st.sidebar.text_area("Paste your content" ,height=300) | |
| if st.sidebar.button("Generate Post"): | |
| if content: | |
| if api_key: | |
| post_from_content(model ,content) | |
| else: | |
| st.sidebar.error("Please enter API Key") | |
| else: | |
| st.sidebar.error("You have not provided any content in Textbox") | |
| # if st.button('Copy Advanced Post'): | |
| # pyperclip.copy(advance_post) | |
| # st.success('Text copied successfully!') | |
| #-------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
| # if __name__ == "__main__": | |
| # main() | |