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