File size: 1,700 Bytes
20c75d5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import gradio as gr
import os
from langchain.chat_models import ChatOpenAI
from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain
from langchain.chains import SimpleSequentialChain

def load_chain(api_key):
    os.environ["OPENAI_API_KEY"] = api_key
    llm = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0.1)
    first_prompt = PromptTemplate(
        input_variables=["user_in"],
        template= "Write the outline of the coding steps to develop the program {user_in} in five steps. Use Python3 and Be concise. \n\n"
    )
    chain = LLMChain(llm=llm, prompt=first_prompt)

    second_prompt = PromptTemplate(
        input_variables=["program"],
        template= '''Write the python3 code for each step of the {program} described. Use python3 style. Be concise in the code and opinionated about framework choice.'''
    )

    chain_two = LLMChain(llm=llm, prompt=second_prompt)

    overall_chain = SimpleSequentialChain(chains=[chain, chain_two], verbose=True)
    return overall_chain

def answer_question(api_key, question):
    chain = load_chain(api_key)
    output = chain.run(input=question)
    return output

ifaces = gr.Interface(
    fn=answer_question,
    inputs=[gr.inputs.Textbox(
    label="Your OpenAI API Key",
    placeholder="e.g. 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"),
    gr.inputs.Textbox(label="Write a python script to:",
    placeholder="e.g. Find the 10th number of the Fibonacci sequence")],
    outputs=gr.outputs.Textbox(label="User guide"),
    title="Python Code Generator",
    description="Enter your OpenAI API key below and a description of your desired python project in 1-2 sentences"
)

ifaces.launch()