import%20marimo%0A%0A__generated_with%20%3D%20%220.11.0%22%0Aapp%20%3D%20marimo.App(width%3D%22medium%22)%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20import%20marimo%20as%20mo%0A%20%20%20%20import%20openai%0A%20%20%20%20import%20os%0A%20%20%20%20import%20IPython%0A%20%20%20%20from%20langchain.llms%20import%20OpenAI%0A%20%20%20%20from%20langchain.prompts%20import%20PromptTemplate%0A%20%20%20%20from%20langchain.chains%20import%20LLMChain%0A%20%20%20%20from%20dotenv%20import%20load_dotenv%2C%20find_dotenv%0A%20%20%20%20import%20marimo%20as%20mo%0A%20%20%20%20return%20(%0A%20%20%20%20%20%20%20%20IPython%2C%0A%20%20%20%20%20%20%20%20LLMChain%2C%0A%20%20%20%20%20%20%20%20OpenAI%2C%0A%20%20%20%20%20%20%20%20PromptTemplate%2C%0A%20%20%20%20%20%20%20%20find_dotenv%2C%0A%20%20%20%20%20%20%20%20load_dotenv%2C%0A%20%20%20%20%20%20%20%20mo%2C%0A%20%20%20%20%20%20%20%20openai%2C%0A%20%20%20%20%20%20%20%20os%2C%0A%20%20%20%20)%0A%0A%0A%40app.cell%0Adef%20_(os)%3A%0A%20%20%20%20%23%20Delete%20if%20not%20using%20in%20UTSA%20%0A%20%20%20%20os.environ%5B%22http_proxy%22%5D%20%3D%20%22http%3A%2F%2Fxa-proxy.utsarr.net%3A80%22%0A%20%20%20%20os.environ%5B%22https_proxy%22%5D%20%3D%20%22http%3A%2F%2Fxa-proxy.utsarr.net%3A80%22%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(find_dotenv%2C%20load_dotenv%2C%20openai%2C%20os)%3A%0A%20%20%20%20%23%20Ensure%20you%20have%20a%20.env%20file%20in%20the%20AgenticAISystems%20folder%20with%20your%20OPENAI_API_KEY.%0A%20%20%20%20working_dir%20%3D%20os.getcwd()%0A%20%20%20%20status%20%3D%20load_dotenv(%0A%20%20%20%20%20%20%20%20find_dotenv(%0A%20%20%20%20%20%20%20%20%20%20%20%20filename%3Df'%7Bworking_dir%7D%2FAgenticAISystems%2F.env'%2C%20%0A%20%20%20%20%20%20%20%20%20%20%20%20raise_error_if_not_found%3DTrue%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20)%0A%0A%20%20%20%20%23%20API%20configuration%0A%20%20%20%20client%20%3D%20openai.OpenAI(api_key%3D'')%0A%20%20%20%20client.api_key%20%3D%20os.getenv(%22OPENAI_API_KEY%22)%0A%0A%20%20%20%20%23%20LangChain%0A%20%20%20%20os.environ%5B%22OPENAI_API_KEY%22%5D%20%3D%20os.getenv(%22OPENAI_API_KEY%22)%0A%20%20%20%20return%20client%2C%20status%2C%20working_dir%0A%0A%0A%40app.cell%0Adef%20_(client)%3A%0A%20%20%20%20def%20set_open_params(%0A%20%20%20%20%20%20%20%20model%3D%22gpt-3.5-turbo%22%2C%0A%20%20%20%20%20%20%20%20temperature%3D0.7%2C%0A%20%20%20%20%20%20%20%20max_tokens%3D256%2C%0A%20%20%20%20%20%20%20%20top_p%3D1%2C%0A%20%20%20%20%20%20%20%20frequency_penalty%3D0%2C%0A%20%20%20%20%20%20%20%20presence_penalty%3D0%2C%0A%20%20%20%20)%3A%0A%20%20%20%20%20%20%20%20%22%22%22%20set%20openai%20parameters%22%22%22%0A%0A%20%20%20%20%20%20%20%20openai_params%20%3D%20%7B%7D%20%20%20%20%0A%0A%20%20%20%20%20%20%20%20openai_params%5B'model'%5D%20%3D%20model%0A%20%20%20%20%20%20%20%20openai_params%5B'temperature'%5D%20%3D%20temperature%0A%20%20%20%20%20%20%20%20openai_params%5B'max_tokens'%5D%20%3D%20max_tokens%0A%20%20%20%20%20%20%20%20openai_params%5B'top_p'%5D%20%3D%20top_p%0A%20%20%20%20%20%20%20%20openai_params%5B'frequency_penalty'%5D%20%3D%20frequency_penalty%0A%20%20%20%20%20%20%20%20openai_params%5B'presence_penalty'%5D%20%3D%20presence_penalty%0A%20%20%20%20%20%20%20%20return%20openai_params%0A%0A%20%20%20%20def%20get_completion(params%2C%20messages)%3A%0A%20%20%20%20%20%20%20%20%22%22%22%20GET%20completion%20from%20openai%20api%22%22%22%0A%0A%20%20%20%20%20%20%20%20response%20%3D%20client.chat.completions.create(%0A%20%20%20%20%20%20%20%20%20%20%20%20model%20%3D%20params%5B'model'%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20messages%20%3D%20messages%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20temperature%20%3D%20params%5B'temperature'%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20max_tokens%20%3D%20params%5B'max_tokens'%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20top_p%20%3D%20params%5B'top_p'%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20frequency_penalty%20%3D%20params%5B'frequency_penalty'%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20presence_penalty%20%3D%20params%5B'presence_penalty'%5D%2C%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20return%20response%0A%20%20%20%20return%20get_completion%2C%20set_open_params%0A%0A%0A%40app.cell%0Adef%20_(PromptTemplate)%3A%0A%20%20%20%20%23%20Define%20a%20prompt%20template.%0A%20%20%20%20%23%20Here%2C%20we're%20asking%20the%20LLM%20to%20explain%20a%20topic%20in%20simple%20terms.%0A%20%20%20%20prompt%20%3D%20PromptTemplate(%0A%20%20%20%20%20%20%20%20input_variables%3D%5B%22topic%22%5D%2C%0A%20%20%20%20%20%20%20%20template%3D%22Explain%20the%20concept%20of%20%7Btopic%7D%20as%20a%20scientists.%22%0A%20%20%20%20)%0A%20%20%20%20return%20(prompt%2C)%0A%0A%0A%40app.cell%0Adef%20_(OpenAI)%3A%0A%20%20%20%20%23%20Initialize%20the%20OpenAI%20LLM.%0A%20%20%20%20llm%20%3D%20OpenAI(temperature%3D0.5)%0A%20%20%20%20return%20(llm%2C)%0A%0A%0A%40app.cell%0Adef%20_(llm%2C%20prompt)%3A%0A%20%20%20%20%23%20Compose%20the%20prompt%20and%20LLM%20using%20the%20chaining%20operator.%0A%20%20%20%20%23%20This%20creates%20a%20RunnableSequence%20equivalent%20to%20the%20old%20LLMChain.%0A%20%20%20%20chain%20%3D%20prompt%20%7C%20llm%0A%20%20%20%20return%20(chain%2C)%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20%23%20Prepare%20the%20input%20as%20a%20dictionary.%0A%20%20%20%20input_data%20%3D%20%7B%22topic%22%3A%20%22quantum%20computing%22%7D%0A%20%20%20%20return%20(input_data%2C)%0A%0A%0A%40app.cell%0Adef%20_(chain%2C%20input_data)%3A%0A%20%20%20%20%23%20Execute%20the%20chain%20using%20the%20invoke()%20method.%0A%20%20%20%20result%20%3D%20chain.invoke(input_data)%0A%20%20%20%20return%20(result%2C)%0A%0A%0A%40app.cell%0Adef%20_(result)%3A%0A%20%20%20%20print(%22Response%20from%20the%20OpenAI%20LLM%3A%22)%0A%20%20%20%20print(result)%0A%20%20%20%20return%0A%0A%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20app.run()%0A
f379ba8adc3e7b2d7fead183008df49dd3c8f60158f9b27478bbe7600a724dab