Spaces:
Running
Running
from dotenv import load_dotenv | |
load_dotenv() | |
import streamlit as st | |
import os | |
import google.generativeai as genai | |
from langchain_google_genai import ChatGoogleGenerativeAI | |
from langchain.prompts import PromptTemplate | |
genai.configure(api_key=os.getenv("GOOGLE_API_KEY")) | |
model = ChatGoogleGenerativeAI(model="gemini-pro") | |
def gemini_model(input_text,no_of_words,blog_style): | |
# here we are creating a template for the prompt | |
template = """ | |
Write a blog on the topic of {input_text} for {blog_style} audience. | |
The blog should be {no_of_words} words long. | |
""" | |
# here we are creating a prompt using the template and the input variables | |
prompt = PromptTemplate(input_variables=["input_text","blog_style","no_of_words"],template=template) | |
# here we are generating the blog | |
response = model.invoke(prompt.format(input_text=input_text,blog_style=blog_style,no_of_words=no_of_words)) | |
print(response) | |
return response.content | |
# st.set_page_config(page_title="Blog Generator", initial_sidebar_state="collapsed", layout="centered") | |
st.set_page_config(page_title="Lets Generate Blogs", | |
page_icon='♛ ', | |
layout='centered', | |
initial_sidebar_state='collapsed') | |
st.header("Lets Generate Blogs Together ♛ ") | |
input_text=st.text_input("Enter the Blog Topic") | |
## creating to more columns for additonal 2 fields | |
col1,col2=st.columns([2,2]) | |
with col1: | |
no_words=st.text_input('No of Words') | |
with col2: | |
blog_style=st.selectbox('♛ Writing the blog for', | |
('Kids - 5 Year olds','Grad Students','Researchers','Data Scientist','Common People'),index=0) | |
# Generate Button | |
submit_button = st.button("♛ Generate Blog ") | |
# Display the generated blog on button click | |
if submit_button: | |
st.success("**Generated Blog:**") | |
generated_blog = gemini_model(input_text, no_of_words, blog_style) | |
st.write(generated_blog) |