From 1e37c0723b49cfbf2d8194d71343d38b8d92fc21 Mon Sep 17 00:00:00 2001 From: Stefan Krawczyk Date: Sat, 24 Jun 2023 23:56:02 -0700 Subject: [PATCH] WIP knowledge retrieval example Reimplements https://github.com/openai/openai-cookbook/blob/main/examples/How_to_call_functions_for_knowledge_retrieval.ipynb But I'm going to try to make this more realistic. TODO: - create agent that calls out to Hamilton - tidy up code to make it flow better --- .../knowledge_retrieval/answer_question.png | Bin 0 -> 136859 bytes .../knowledge_retrieval/arxiv_articles.py | 112 +++++++++++++ .../populate_arxiv_library.png | Bin 0 -> 82964 bytes .../knowledge_retrieval/requirements.txt | 10 ++ .../LLM_Workflows/knowledge_retrieval/run.py | 45 ++++++ .../knowledge_retrieval/summarize_text.py | 147 ++++++++++++++++++ 6 files changed, 314 insertions(+) create mode 100644 examples/LLM_Workflows/knowledge_retrieval/answer_question.png create mode 100644 examples/LLM_Workflows/knowledge_retrieval/arxiv_articles.py create mode 100644 examples/LLM_Workflows/knowledge_retrieval/populate_arxiv_library.png create mode 100644 examples/LLM_Workflows/knowledge_retrieval/requirements.txt create mode 100644 examples/LLM_Workflows/knowledge_retrieval/run.py create mode 100644 examples/LLM_Workflows/knowledge_retrieval/summarize_text.py diff --git a/examples/LLM_Workflows/knowledge_retrieval/answer_question.png b/examples/LLM_Workflows/knowledge_retrieval/answer_question.png new file mode 100644 index 0000000000000000000000000000000000000000..9a89457e0c0094caad9c42b8c8577139c2d25811 GIT binary patch literal 136859 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

pvoS**@|Nqop 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

;YD56P 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 W+@#?*(v$Ru-8%nlyU*qq@Bar9E=45( literal 0 HcmV?d00001 diff --git a/examples/LLM_Workflows/knowledge_retrieval/arxiv_articles.py b/examples/LLM_Workflows/knowledge_retrieval/arxiv_articles.py new file mode 100644 index 000000000..590bc7a59 --- /dev/null +++ b/examples/LLM_Workflows/knowledge_retrieval/arxiv_articles.py @@ -0,0 +1,112 @@ +import concurrent +import os.path +from typing import Dict, List, Tuple + +import arxiv +import openai +import pandas as pd +from tenacity import retry, stop_after_attempt, wait_random_exponential +from tqdm import tqdm + + +def arxiv_search_results( + article_query: str, + max_arxiv_results: int, + sort_by: arxiv.SortCriterion.Relevance = arxiv.SortCriterion.Relevance, +) -> List[arxiv.Result]: + _search = arxiv.Search( + query=article_query, + max_results=max_arxiv_results, + sort_by=sort_by, + ) + return list(_search.results()) + + +def arxiv_result(arxiv_search_results: List[arxiv.Result]) -> List[Dict[str, str]]: + result_list = [] + for result in arxiv_search_results: + _links = [x.href for x in result.links] + result_list.append( + { + "title": result.title, + "summary": result.summary, + "article_url": _links[0], + "pdf_url": _links[1], + } + ) + + return result_list + + +@retry(wait=wait_random_exponential(min=1, max=40), stop=stop_after_attempt(3)) +def _get_embedding(text: str, model_name: str) -> Tuple[str, List[float]]: + response = openai.Embedding.create(input=text, model=model_name) + return text, response["data"][0]["embedding"] + + +def arxiv_result_embeddings( + arxiv_search_results: List[arxiv.Result], + embedding_model_name: str, + max_num_concurrent_requests: int, +) -> pd.DataFrame: + embedding_list = [] + index_list = [] + + with concurrent.futures.ThreadPoolExecutor(max_workers=max_num_concurrent_requests) as executor: + futures = [ + executor.submit( + _get_embedding, + text=result.title, + model_name=embedding_model_name, + ) + for result in arxiv_search_results + ] + for future in tqdm( + concurrent.futures.as_completed(futures), + total=len(futures), + desc="Generating embeddings", + ): + title, embedding = future.result() + embedding_list.append(embedding) + index_list.append(title) + + return pd.DataFrame({"embeddings": embedding_list}, index=index_list) + + +def arxiv_pdfs( + arxiv_search_results: List[arxiv.Result], data_dir: str, max_num_concurrent_requests: int +) -> pd.DataFrame: + path_list = [] + index_list = [] + with concurrent.futures.ThreadPoolExecutor(max_workers=max_num_concurrent_requests) as executor: + futures = { + executor.submit( + result.download_pdf, + dirpath=data_dir, + ): result.title + for result in arxiv_search_results + } + for future in tqdm( + concurrent.futures.as_completed(futures.keys()), + total=len(futures), + desc="Saving PDFs", + ): + filepath = future.result() + path_list.append(filepath) + index_list.append(futures[future]) + + return pd.DataFrame({"pdf_path": path_list}, index=index_list) + + +def arxiv_result_df( + arxiv_pdfs: pd.DataFrame, arxiv_result_embeddings: pd.DataFrame +) -> pd.DataFrame: + return pd.merge(arxiv_pdfs, arxiv_result_embeddings, left_index=True, right_index=True) + + +def save_arxiv_result_df(arxiv_result_df: pd.DataFrame, library_file_path: str) -> dict: + if os.path.exists(library_file_path): + arxiv_result_df.to_csv(library_file_path, mode="a", header=False) + else: + arxiv_result_df.to_csv(library_file_path) + return {"num_articles_written": len(arxiv_result_df)} diff --git a/examples/LLM_Workflows/knowledge_retrieval/populate_arxiv_library.png b/examples/LLM_Workflows/knowledge_retrieval/populate_arxiv_library.png new file mode 100644 index 0000000000000000000000000000000000000000..a680b0585ae4178a06c795857a0f308f3416f700 GIT binary patch literal 82964 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%0A4+3M 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 str: + return "Summarize this text from an academic paper. Extract any key points with reasoning.\n\nContent:" + + +def main_summary_prompt() -> str: + return """Write a summary collated from this collection of key points extracted from an academic paper. + The summary should highlight the core argument, conclusions and evidence, and answer the user's query. + User query: {query} + The summary should be structured in bulleted lists following the headings Core Argument, Evidence, and Conclusions. + Key points:\n{results}\nSummary:\n""" + + +@retry(wait=wait_random_exponential(min=1, max=40), stop=stop_after_attempt(3)) +def user_query_embedding(user_query: str, embedding_model_name: str) -> List[float]: + response = openai.Embedding.create(input=user_query, model=embedding_model_name) + return response["data"][0]["embedding"] + + +def relatedness( + user_query_embedding: List[float], + embeddings: pd.Series, + relatedness_fn: Callable = lambda x, y: 1 - spatial.distance.cosine(x, y), +) -> pd.Series: + return embeddings.apply(lambda x: relatedness_fn(user_query_embedding, x)) + + +def pdf_text(pdf_path: pd.Series) -> pd.Series: + """Takes a filepath to a PDF and returns a string of the PDF's contents""" + _pdf_text = [] + for i, file_path in pdf_path.items(): + # creating a pdf reader object + reader = PdfReader(file_path) + text = "" + page_number = 0 + for page in reader.pages: + page_number += 1 + text += page.extract_text() + f"\nPage Number: {page_number}" + _pdf_text.append(text) + return pd.Series(_pdf_text, index=pdf_path.index) + + +def _create_chunks(text: str, n: int, tokenizer: tiktoken.Encoding) -> Generator[str, None, None]: + """Returns successive n-sized chunks from provided text. + Split a text into smaller chunks of size n, preferably ending at the end of a sentence + """ + tokens = tokenizer.encode(text) + i = 0 + while i < len(tokens): + # Find the nearest end of sentence within a range of 0.5 * n and 1.5 * n tokens + j = min(i + int(1.5 * n), len(tokens)) + while j > i + int(0.5 * n): + # Decode the tokens and check for full stop or newline + chunk = tokenizer.decode(tokens[i:j]) + if chunk.endswith(".") or chunk.endswith("\n"): + break + j -= 1 + # If no end of sentence found, use n tokens as the chunk size + if j == i + int(0.5 * n): + j = min(i + n, len(tokens)) + yield tokens[i:j] + i = j + + +def chunked_pdf_text( + pdf_text: pd.Series, max_token_length: int, tokenizer_encoding: str = "cl100k_base" +) -> pd.Series: + tokenizer = tiktoken.get_encoding(tokenizer_encoding) + _chunked = pdf_text.apply(lambda x: _create_chunks(x, max_token_length, tokenizer)) + _chunked = _chunked.apply(lambda x: [tokenizer.decode(chunk) for chunk in x]) + return _chunked + + +def top_n_related_articles( + relatedness: pd.Series, top_n: int, chunked_pdf_text: pd.Series +) -> pd.Series: + """Returns the top_n related articles from the library_df""" + return chunked_pdf_text[relatedness.sort_values(ascending=False).head(top_n).index] + + +@retry(wait=wait_random_exponential(min=1, max=40), stop=stop_after_attempt(3)) +def _summarize_chunk(content: str, template_prompt: str, openai_gpt_model: str) -> str: + """This function applies a prompt to some input content. In this case it returns a summarized chunk of text""" + prompt = template_prompt + content + response = openai.ChatCompletion.create( + model=openai_gpt_model, messages=[{"role": "user", "content": prompt}], temperature=0 + ) + return response["choices"][0]["message"]["content"] + + +def summarized_pdf( + top_n_related_articles: pd.Series, summary_prompt: str, openai_gpt_model: str +) -> str: + """Only does first one...""" + text_chunks = top_n_related_articles[0] + results = "" + with concurrent.futures.ThreadPoolExecutor(max_workers=len(text_chunks)) as executor: + futures = [ + executor.submit(_summarize_chunk, chunk, summary_prompt, openai_gpt_model) + for chunk in text_chunks + ] + with tqdm(total=len(text_chunks)) as pbar: + for _ in concurrent.futures.as_completed(futures): + pbar.update(1) + for future in futures: + data = future.result() + results += data + return results + + +@extract_columns(*["pdf_path", "embeddings"]) +def library_df(library_file_path: str) -> pd.DataFrame: + _library_df = pd.read_csv(library_file_path) + _library_df.columns = ["title", "pdf_path", "embeddings"] + _library_df["embeddings"] = _library_df["embeddings"].apply(ast.literal_eval) + _library_df.index = _library_df["title"] + return _library_df + + +def summarize_text( + user_query: str, summarized_pdf: str, main_summary_prompt: str, openai_gpt_model: str +) -> str: + response = openai.ChatCompletion.create( + model=openai_gpt_model, + messages=[ + { + "role": "user", + "content": main_summary_prompt.format(query=user_query, results=summarized_pdf), + } + ], + temperature=0, + ) + return response["choices"][0]["message"]["content"]