santhoshs commited on
Commit
65ff7bb
·
1 Parent(s): 1f0895f

Updated app

Browse files
Files changed (1) hide show
  1. app.py +31 -9
app.py CHANGED
@@ -1,3 +1,5 @@
 
 
1
  from datasets import load_dataset
2
  from langchain.embeddings import CacheBackedEmbeddings
3
  from langchain.storage import LocalFileStore
@@ -11,9 +13,13 @@ from langchain_community.vectorstores import FAISS
11
  from langchain_openai import OpenAIEmbeddings
12
  from langchain_openai import ChatOpenAI
13
 
14
- dataset = load_dataset('ShubhamChoksi/IMDB_Movies')
15
- dataset_dict = dataset
16
- dataset_dict["train"].to_csv('imdb.csv')
 
 
 
 
17
 
18
  loader = CSVLoader(file_path='imdb.csv')
19
  data = loader.load()
@@ -24,8 +30,6 @@ text_splitter = RecursiveCharacterTextSplitter(
24
  )
25
  chunked_documents = text_splitter.split_documents(data)
26
 
27
- import os
28
-
29
  openai_api_key = os.getenv("openai_api_key")
30
  embedding_model = OpenAIEmbeddings(model="text-embedding-3-small", openai_api_key=openai_api_key)
31
 
@@ -33,8 +37,12 @@ store = LocalFileStore("./cache/")
33
  cached_embedder = CacheBackedEmbeddings.from_bytes_store(embedding_model, store, namespace=embedding_model.model)
34
 
35
  vector_file = "local_vector"
36
- vector_store = FAISS.from_documents(chunked_documents, cached_embedder)
37
- vector_store.save_local(vector_file)
 
 
 
 
38
 
39
  prompt_template = ChatPromptTemplate.from_template(
40
  "You are a movie recommendation system, for a given {query} find recommendations from {content}."
@@ -50,5 +58,19 @@ runnable_chain = (
50
  | StrOutputParser()
51
  )
52
 
53
- output_chunks = runnable_chain.invoke(query)
54
- print(''.join(output_chunks))
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import chainlit as cl
3
  from datasets import load_dataset
4
  from langchain.embeddings import CacheBackedEmbeddings
5
  from langchain.storage import LocalFileStore
 
13
  from langchain_openai import OpenAIEmbeddings
14
  from langchain_openai import ChatOpenAI
15
 
16
+
17
+ imdb_csv_file="./imdb.csv"
18
+
19
+ if not os.path.exists(imdb_csv_file):
20
+ dataset = load_dataset('ShubhamChoksi/IMDB_Movies')
21
+ dataset_dict = dataset
22
+ dataset_dict["train"].to_csv('imdb.csv')
23
 
24
  loader = CSVLoader(file_path='imdb.csv')
25
  data = loader.load()
 
30
  )
31
  chunked_documents = text_splitter.split_documents(data)
32
 
 
 
33
  openai_api_key = os.getenv("openai_api_key")
34
  embedding_model = OpenAIEmbeddings(model="text-embedding-3-small", openai_api_key=openai_api_key)
35
 
 
37
  cached_embedder = CacheBackedEmbeddings.from_bytes_store(embedding_model, store, namespace=embedding_model.model)
38
 
39
  vector_file = "local_vector"
40
+
41
+ if not os.path.exists(imdb_csv_file):
42
+ vector_store = FAISS.from_documents(chunked_documents, cached_embedder)
43
+ vector_store.save_local(vector_file)
44
+ else:
45
+ vector_store = FAISS.load_local(vector_file, cached_embedder)
46
 
47
  prompt_template = ChatPromptTemplate.from_template(
48
  "You are a movie recommendation system, for a given {query} find recommendations from {content}."
 
58
  | StrOutputParser()
59
  )
60
 
61
+ @cl.on_chat_start
62
+ async def on_chat_start():
63
+ await cl.Message(content="Hello, i am your movie recommender, how can i help you today?").send()
64
+ cl.user_session.set("chain", runnable_chain)
65
+
66
+
67
+ @cl.on_message
68
+ async def main(message):
69
+ chain = cl.user_session.get("chain")
70
+ cb = cl.AsyncLangchainCallbackHandler()
71
+ user_input = cl.Message(content="")
72
+
73
+ async for stream in chain.astream(user_input, cb):
74
+ await user_input.stream_token(stream)
75
+
76
+ await user_input.send()