-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.py
66 lines (55 loc) · 1.84 KB
/
app.py
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
58
59
60
61
62
63
64
65
66
import os
from apikey import apikey
import streamlit as st
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain, SequentialChain
from langchain.memory import ConversationBufferMemory
from langchain.utilities import WikipediaAPIWrapper
os.environ["OPENAI_API_KEY"] = apikey
# Prompt templates
title_template = PromptTemplate(
input_variables=["topic"], template="Write me a youtube video title about {topic}."
)
script_template = PromptTemplate(
input_variables=["title", "wikipedia_research"],
template="Write me a youtube video script based on this title TITLE: {title} \
while leveraging this wikipedia research: {wikipedia_research}",
)
# App framework
st.title("🦜️🔗 YouTube GPT Creator")
prompt = st.text_input("Enter a prompt for the AI to complete")
# Memory
title_memory = ConversationBufferMemory(input_key="topic", memory_key="chat_history")
script_memory = ConversationBufferMemory(input_key="title", memory_key="chat_history")
# LLMs
llm = OpenAI(temperature=0.9)
title_chain = LLMChain(
llm=llm,
prompt=title_template,
verbose=True,
output_key="title",
memory=title_memory,
)
script_chain = LLMChain(
llm=llm,
prompt=script_template,
verbose=True,
output_key="script",
memory=script_memory,
)
# Wikipedia API wrapper
wiki = WikipediaAPIWrapper()
# Show stuff to the screen if there's a prompt
if prompt:
title = title_chain.run(topic=prompt)
wiki_research = wiki.run(prompt)
script = script_chain.run(title=title, wikipedia_research=wiki_research)
st.write(title)
st.write(script)
with st.expander("Title History"):
st.info(title_memory.buffer)
with st.expander("Script History"):
st.info(script_memory.buffer)
with st.expander("Wikipedia Research"):
st.info(wiki_research)