-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
44 lines (32 loc) · 1.4 KB
/
Copy pathmain.py
File metadata and controls
44 lines (32 loc) · 1.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
from unstructured.partition.auto import partition
link="/home/jam/Downloads/3HAC050917 TRM RAPID RW 6-en.pdf";
elements = partition(filename=link,content_type="application/pdf")
from unstructured.documents.elements import NarrativeText
from unstructured.partition.text_type import sentence_count
from langchain.text_splitter import NLTKTextSplitter
input=""
for element in elements:
if isinstance(element, NarrativeText):
input=input+str(element);
nltksplit = NLTKTextSplitter(chunk_size=250)
nsplit = nltksplit.split_text(input)
from langchain.vectorstores import Chroma
from langchain.embeddings.openai import OpenAIEmbeddings
import os
os.environ["OPENAI_API_KEY"] = 'YOUR_OPENAI_APIKEY'
embed = OpenAIEmbeddings()
db = Chroma.from_texts(nsplit, embed)
query = "how to define a boolean"
outputtext = db.similarity_search(query)
print(outputtext[0].page_content)
from langchain.chains import ConversationalRetrievalChain
from langchain.memory import ConversationBufferMemory
memory=ConversationBufferMemory(memory_key="chat_history",return_messages=True)
from langchain.llms import OpenAI
qa = ConversationalRetrievalChain.from_llm(OpenAI(temperature=0), db.as_retriever(), memory=memory)
query = "What is this manual about?"
result = qa({"question": query})
result["answer"]
query = "tell me how do I move my robot linearly and circularly"
result = qa({"question": query})
result["answer"]