QuantumLearner commited on
Commit
d5f5d7b
·
verified ·
1 Parent(s): 1dc06fe

Delete app2.py

Browse files
Files changed (1) hide show
  1. app2.py +0 -84
app2.py DELETED
@@ -1,84 +0,0 @@
1
- import chainlit as cl
2
- import arxiv
3
- from langchain.chat_models import ChatOpenAI
4
- from langchain.chains import ConversationalRetrievalChain
5
- from langchain.memory import ConversationBufferMemory
6
- from langchain.text_splitter import CharacterTextSplitter
7
- from langchain.embeddings import OpenAIEmbeddings
8
- from langchain.vectorstores import FAISS
9
- import os
10
-
11
- # Set your OpenAI API key
12
- os.environ["OPENAI_API_KEY"] = "sk-proj-vFPqdrr801blzZCRBjztT3BlbkFJJJeQVcc62PA40cQ1S9Zv"
13
-
14
- # Initialize global variables
15
- selected_paper = None
16
- qa_chain = None
17
- papers = []
18
-
19
- @cl.on_chat_start
20
- def start():
21
- cl.Message(content="Welcome! Please enter a search query for arXiv papers.").send()
22
-
23
- @cl.on_message
24
- def main(message: str):
25
- global selected_paper, qa_chain, papers
26
-
27
- if not papers:
28
- # Search for papers
29
- search = arxiv.Search(
30
- query=message,
31
- max_results=5,
32
- sort_by=arxiv.SortCriterion.Relevance
33
- )
34
-
35
- papers = list(search.results())
36
-
37
- if not papers:
38
- cl.Message(content="No papers found. Please try another search query.").send()
39
- return
40
-
41
- # Create a numbered list of papers
42
- paper_list = "\n".join([f"{i+1}. {paper.title} - {paper.authors[0]}" for i, paper in enumerate(papers)])
43
- cl.Message(content=f"Please select a paper by entering its number:\n\n{paper_list}\n\nEnter the number of the paper you want to select:").send()
44
-
45
- elif selected_paper is None:
46
- try:
47
- selected_index = int(message) - 1
48
- if 0 <= selected_index < len(papers):
49
- selected_paper = papers[selected_index]
50
- else:
51
- cl.Message(content="Invalid selection. Please try again.").send()
52
- return
53
- except ValueError:
54
- cl.Message(content="Invalid input. Please enter a number.").send()
55
- return
56
-
57
- # Download and process the selected paper
58
- paper_text = selected_paper.summary
59
-
60
- # Split the text into chunks
61
- text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)
62
- chunks = text_splitter.split_text(paper_text)
63
-
64
- # Create embeddings and vector store
65
- embeddings = OpenAIEmbeddings()
66
- vectorstore = FAISS.from_texts(chunks, embeddings)
67
-
68
- # Create the conversational chain
69
- memory = ConversationBufferMemory(memory_key="chat_history", return_messages=True)
70
- qa_chain = ConversationalRetrievalChain.from_llm(
71
- ChatOpenAI(temperature=0),
72
- vectorstore.as_retriever(),
73
- memory=memory
74
- )
75
-
76
- cl.Message(content=f"Selected paper: {selected_paper.title}\nYou can now ask questions about this paper.").send()
77
-
78
- else:
79
- # Answer questions about the selected paper
80
- response = qa_chain({"question": message})
81
- cl.Message(content=response["answer"]).send()
82
-
83
- if __name__ == "__main__":
84
- cl.run()