| |
| |
|
|
| import streamlit as st |
| from langchain_community.llms import OpenAI |
| |
| |
| from langchain_google_genai import ChatGoogleGenerativeAI |
|
|
|
|
| def main(): |
| st.title("Open AI or Gemini Options") |
|
|
| |
| st.header("Radio:") |
| radio = st.radio("Radio", ["Open AI", "Gemini", "TBD"]) |
| st.write("Selected option:", radio) |
| role = st.text_input("Enter Role") |
| st.write("Entered role:", role) |
| |
| |
| st.header("Slider:") |
| temp = st.slider("Temperature", min_value=0.0, max_value=1.0, value=0.7, step=0.1) |
| st.write("Selected value:", temp) |
|
|
| |
| with st.form("my_form"): |
| topic = st.text_area("Enter the topic for your LinkedIn post:") |
| submitted = st.form_submit_button("Generate Post") |
| if submitted and topic: |
| |
| |
| post = generate_linkedin_post(topic, role,temp,radio) |
| st.info(post) |
| elif submitted and not topic: |
| st.error("Please enter a topic to generate a post.") |
|
|
| def generate_linkedin_post(topic, role,temp,radio): |
| |
| prompt = ( |
| f"You as {role} Create a professional, engaging LinkedIn post about {topic}. " |
| f"Adjust the tone and style based on a temperature of {temp}. " |
| "It should start with an attention grabbing hook based on audience pain. " |
| "Then a line to agitate the user. This should be in the next line. " |
| "The post should be concise, informative, and suitable for a professional audience. " |
| "It should provide value, insights, or thought-provoking content related to the topic. " |
| "And only contain 3 points. " |
| |
| ) |
| if radio == "Open AI": |
| |
| llm = OpenAI(temperature=temp, openai_api_key=st.secrets["OPENAI_API_KEY"]) |
| response = llm(prompt) |
| return response |
| |
| |
| elif radio == "Gemini": |
| |
| llm = ChatGoogleGenerativeAI(model="gemini-pro") |
| result = llm.invoke(prompt) |
| return print(result.content) |
|
|
| """" |
| if radio == "Open AI": # Corrected if statement syntax and comparison |
| generate_openai_post(role, temp) |
| |
| elif radio == "Gemini": |
| generate_gemini_post(role, temp) |
| |
| def generate_openai_post(role, temp): |
| def generate_linkedin_post(topic, role): |
| # Enhanced prompt with additional context for better post generation |
| prompt = ( |
| f"You as {role} Create a professional, engaging LinkedIn post about {topic}. " |
| f"Adjust the tone and style based on a temperature of {temp}. " |
| "It should start with an attention grabbing hook based on audience pain. " |
| "Then a line to agitate the user. This should be in the next line. " |
| "The post should be concise, informative, and suitable for a professional audience. " |
| "It should provide value, insights, or thought-provoking content related to the topic. " |
| "And only contain 3 points. " |
| |
| ) |
| llm = OpenAI(temperature=temp, openai_api_key=st.secrets["OPENAI_API_KEY"]) # Corrected variable name |
| response = llm(prompt) |
| return response |
| |
| with st.form("my_form"): |
| topic = st.text_area("Enter the topic for your LinkedIn post:") |
| submitted = st.form_submit_button("Generate Post") |
| if submitted and topic: |
| post = generate_linkedin_post(topic, role) |
| st.info(post) |
| elif submitted and not topic: |
| st.error("Please enter a topic to generate a post.") |
| |
| def generate_gemini_post(role, temp): |
| prompt = ( |
| f"You as {role} Create a professional, engaging LinkedIn post about {topic}. " |
| f"Adjust the tone and style based on a temperature of {temp}. " |
| "It should start with an attention grabbing hook based on audience pain. " |
| "Then a line to agitate the user. This should be in the next line. " |
| "The post should be concise, informative, and suitable for a professional audience. " |
| "It should provide value, insights, or thought-provoking content related to the topic. " |
| "And only contain 3 points. " |
| |
| ) |
| llm = ChatGoogleGenerativeAI(model="gemini-pro") |
| result = llm.invoke(prompt) |
| return print(result.content) |
| # Call Gemini API functions to generate LinkedIn post |
| # gemini.generate_linkedin_post(topic, role) |
| st.error("Gemini API integration is not yet implemented.") |
| """ |
| if __name__ == "__main__": |
| main() |
|
|