diff --git a/hw5/.env.example b/hw5/.env.example new file mode 100644 index 0000000..da67259 --- /dev/null +++ b/hw5/.env.example @@ -0,0 +1 @@ +OPENAI_API_KEY="" \ No newline at end of file diff --git a/hw5/README.md b/hw5/README.md new file mode 100644 index 0000000..b4c8934 --- /dev/null +++ b/hw5/README.md @@ -0,0 +1,2 @@ +###### David Westgate 17 May 2024 +## HW4 for gensec \ No newline at end of file diff --git a/hw5/app.py b/hw5/app.py index e69de29..53ef173 100644 --- a/hw5/app.py +++ b/hw5/app.py @@ -0,0 +1,46 @@ +from langchain_community.document_loaders.generic import GenericLoader +from langchain_community.document_loaders.parsers import LanguageParser +from langchain_openai import ChatOpenAI +from langchain_core.runnables import RunnablePassthrough +from langchain_core.prompts import PromptTemplate +from langchain_core.output_parsers import StrOutputParser +from langchain_community.document_loaders import AsyncHtmlLoader +from dotenv import load_dotenv +from validators import url +from time import time + +""" +Comments, TODO +""" +load_dotenv() +promt = "You are a malware reverse engineer" +def get_rag_chain(): + return ( + {"context": retriever | format_docs, "question": RunnablePassthrough()} + | prompt + | llm + | StrOutputParser() + ) + + +llm = ChatOpenAI(model_name="gpt-4-turbo", temperature=0) + + +print( + "Welcome to HW4" +) + +while True: + try: + line: str = input("llm>> ") + if line: + start_time = time() + result: str = get_rag_chain.invoke(line) + end_time = time() + elapsed_time = round(end_time - start_time, 2) + print("\n", result, "\n\nElapsed time: ", elapsed_time, " seconds") + else: + break + except Exception as e: + print(e) + break