|
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() |
|
|