File size: 1,179 Bytes
d3a1278
 
 
5e250bb
d3a1278
79081f5
0eea78e
d3a1278
 
 
 
0eea78e
5e250bb
30fc2e2
5e250bb
0eea78e
118351d
0d58a77
5e250bb
118351d
 
 
 
 
 
 
 
 
 
 
79081f5
 
c0b4d8a
79081f5
118351d
 
f4bce7b
 
 
0eea78e
 
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
import os
from pathlib import Path
import streamlit as st
from transformers import pipeline
from dotenv import load_dotenv
from langchain import PromptTemplate, LLMChain, OpenAI
import requests

if Path(".env").is_file():
    load_dotenv(".env")
st.set_page_config(layout="wide")
HF_TOKEN = os.getenv("HUGGINGFACEHUB_API_TOKEN")

def img2Text(url):
    image_to_text = pipeline("image-to-text", model="Salesforce/blip-image-captioning-large")
    text = image_to_text(url)[0]["generated_text"]
    st.subheader("Caption :")
    st.subheader(text)
    return text

#llm
def generate_story(scenario):
    template = """
    You are a story teller;
    You can generate a short story based on a simple narrative, the story should be no momre than 20 words;
    CONTEXT: {scenario}
    STORY:
    """

    prompt = PromptTemplate(template=template,input_variables=["scenario"])
    story_llm = LLMChain(llm=OpenAI(
        model_name="gpt-3.5-turbo", temperature=1), prompt=prompt, verbose=True)

    story = story_llm.predict(scenario=scenario)
    st.subheader("Story :")
    st.subheader(story)
    return story

scenario = img2Text("photo.jpg")
story = generate_story(scenario)