From 2f34f48fd17c6c3ea4516d707a96e3777949011f Mon Sep 17 00:00:00 2001 From: frankcholula Date: Sat, 1 Feb 2025 16:37:56 +0000 Subject: [PATCH 1/2] added ollama and remove unused images. --- poetry.lock | 17 ++++++++++++++++- pyproject.toml | 1 + supervised/prof1.jpg | Bin 19351 -> 0 bytes supervised/prof2.jpg | Bin 19351 -> 0 bytes 4 files changed, 17 insertions(+), 1 deletion(-) delete mode 100644 supervised/prof1.jpg delete mode 100644 supervised/prof2.jpg diff --git a/poetry.lock b/poetry.lock index dea5b0d..624b739 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1771,6 +1771,21 @@ files = [ {file = "numpy-2.2.2.tar.gz", hash = "sha256:ed6906f61834d687738d25988ae117683705636936cc605be0bb208b23df4d8f"}, ] +[[package]] +name = "ollama" +version = "0.4.7" +description = "The official Python client for Ollama." +optional = false +python-versions = "<4.0,>=3.8" +files = [ + {file = "ollama-0.4.7-py3-none-any.whl", hash = "sha256:85505663cca67a83707be5fb3aeff0ea72e67846cea5985529d8eca4366564a1"}, + {file = "ollama-0.4.7.tar.gz", hash = "sha256:891dcbe54f55397d82d289c459de0ea897e103b86a3f1fad0fdb1895922a75ff"}, +] + +[package.dependencies] +httpx = ">=0.27,<0.29" +pydantic = ">=2.9.0,<3.0.0" + [[package]] name = "outcome" version = "1.3.0.post0" @@ -3780,4 +3795,4 @@ propcache = ">=0.2.0" [metadata] lock-version = "2.0" python-versions = "^3.10" -content-hash = "4d122ffb03fa3cae4e80994683486a0e1211592259480a30dd3a884ed628acfb" +content-hash = "758de2d61f7e28a4d488aa5576f12daa43a4f831663076ad364b45b7c62e4644" diff --git a/pyproject.toml b/pyproject.toml index fe6fff6..b415d01 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -13,6 +13,7 @@ scholarly = "^1.7.11" supabase = "^2.12.0" streamlit-supabase = "^0.5" streamlit-extras = "^0.5.0" +ollama = "^0.4.7" [build-system] diff --git a/supervised/prof1.jpg b/supervised/prof1.jpg deleted file mode 100644 index fa27e396c552e99461abfc5a85a0cbe15ce2c82a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19351 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
}ef@Mj(44YU#kqqUL#!CvKEUf+}Ic#QDHN?rU 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 diff --git a/supervised/prof2.jpg b/supervised/prof2.jpg deleted file mode 100644 index fa27e396c552e99461abfc5a85a0cbe15ce2c82a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19351 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
}ef@Mj(44YU#kqqUL#!CvKEUf+}Ic#QDHN?rU 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 From 73529d91515d3cda51015ef34fb527ae1e3084f7 Mon Sep 17 00:00:00 2001 From: frankcholula Date: Sat, 1 Feb 2025 20:29:05 +0000 Subject: [PATCH 2/2] added summarize makefile. --- Makefile | 4 +++ supervised/summarize.py | 57 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 supervised/summarize.py diff --git a/Makefile b/Makefile index 784daed..bdeb0f7 100644 --- a/Makefile +++ b/Makefile @@ -5,3 +5,7 @@ run: .PHONY: backend backend: python supervised/backend.py + +.PHONY: summarize +summarize: + python supervised/summarize.py \ No newline at end of file diff --git a/supervised/summarize.py b/supervised/summarize.py new file mode 100644 index 0000000..5a78332 --- /dev/null +++ b/supervised/summarize.py @@ -0,0 +1,57 @@ +import asyncio +from concurrent.futures import ThreadPoolExecutor +from typing import List, Dict +import ollama +from supervised.cache import papers + +class OllamaSummarizer: + def __init__(self, model_name: str = "dolphin-mistral:latest"): + self.model_name = model_name + + async def generate_summary(self, text: str) -> str: + prompt_template = ( + "Please provide a one sentence summary of the following academic paper abstract. " + "15 words or less in an ELI5 manner.\n\n{text}\n\nSummary:" + ) + prompt = prompt_template.format(text=text) + + try: + with ThreadPoolExecutor() as executor: + response = await asyncio.get_event_loop().run_in_executor( + executor, + lambda: ollama.chat( + model=self.model_name, + messages=[{"role": "user", "content": prompt}], + ), + ) + return response["message"]["content"] + except Exception as e: + print(f"Error generating summary: {str(e)}") + return "" + + async def batch_summarize(self, texts: List[str]) -> List[str]: + tasks = [self.generate_summary(text) for text in texts] + return await asyncio.gather(*tasks) + + async def summarize_papers(self, papers: List[Dict]) -> List[Dict]: + summaries = await self.batch_summarize([paper["abstract"] for paper in papers]) + + summarized_papers = [] + for paper, summary in zip(papers, summaries): + paper_copy = paper.copy() + paper_copy["summary"] = summary + summarized_papers.append(paper_copy) + + return summarized_papers + +async def main(): + summarizer = OllamaSummarizer(model_name="llama2:latest") + recent_papers = papers["recent_papers"] + summarized_papers = await summarizer.summarize_papers(recent_papers) + + for paper in summarized_papers: + print(f"Title: {paper['title']}") + print(f"Summary: {paper['summary']}\n") + +if __name__ == "__main__": + asyncio.run(main()) \ No newline at end of file