pratikshahp's picture
Update app.py
2f98600 verified
raw
history blame
1.97 kB
import os
from dotenv import load_dotenv
import gradio as gr
from langchain_core.prompts import PromptTemplate,ChatPromptTemplate
from langchain_huggingface import HuggingFaceEndpoint
from langchain_core.output_parsers import StrOutputParser
# Load environment variables
load_dotenv()
HF_TOKEN = os.getenv("HF_TOKEN")
# Initialize the HuggingFace model
llm = HuggingFaceEndpoint(
repo_id="mistralai/Mistral-7B-Instruct-v0.3",
huggingfacehub_api_token=HF_TOKEN,
temperature=0.7,
max_new_tokens=200
)
# Define a prompt template for generating a blog
TEMPLATE = """
Write a detailed blog post on the following topic:
Topic: {topic}
Make sure the blog post is informative, engaging, and well-structured.
"""
# Create a prompt template instance
blog_prompt_template = ChatPromptTemplate.from_template(input_variables=["topic"], template=TEMPLATE)
# Initialize the LLMChain with the HuggingFace model and prompt template
blog_chain = blog_prompt_template | model | StrOutputParser()
def generate_blog_post(topic: str, author_name: str) -> str:
if topic:
# Generate the blog post
blog_post = blog_chain.invoke({"topic": topic})
# Add author name if provided
if author_name:
blog_post = f"**By {author_name}**\n\n" + blog_post
return blog_post
else:
return "Please enter a topic for the blog post."
# Define the Gradio interface
interface = gr.Interface(
fn=generate_blog_post,
inputs=[
gr.Textbox(label="Blog Topic", placeholder="Enter the topic here"),
gr.Textbox(label="Author Name", placeholder="Optional")
],
outputs="text",
title="AI Blog Generator",
description="Welcome to the AI Blog Generator. This tool allows you to generate high-quality, engaging blog posts in just a few clicks. Simply provide a topic, and the AI will create a detailed blog post for you.",
theme="default"
)
if __name__ == "__main__":
interface.launch()