File size: 1,748 Bytes
baa8f63
84cb511
 
3934a61
84cb511
c929f05
3934a61
bcf654a
 
6722d35
 
84cb511
1fb01d9
84cb511
 
 
 
 
53d50f0
84cb511
1fb01d9
84cb511
 
 
 
53d50f0
84cb511
 
 
3934a61
1fb01d9
8c7ccda
 
84cb511
3934a61
84cb511
 
c929f05
84cb511
 
 
 
 
 
 
6bdc5d4
84cb511
6bdc5d4
84cb511
 
 
 
6bdc5d4
 
 
84cb511
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
import os
from dotenv import load_dotenv
import gradio as gr
from langchain_core.prompts import PromptTemplate
from langchain_huggingface import HuggingFaceEndpoint
from langchain_core.output_parsers import StrOutputParser
from langchain_core.runnables import RunnableSequence

# 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=700
)

# 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, well-structured, and complete in 500 words only.
"""

# Create a prompt template instance
blog_prompt_template = PromptTemplate(input_variables=["topic"], template=TEMPLATE)

# Create a chain
blog_chain = blog_prompt_template | llm | StrOutputParser()

def generate_blog_post(topic: str) -> str:
    if topic:
        # Generate the blog post
        blog_post = blog_chain.invoke({"topic": topic})
        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"),
    ],
    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()