alen commited on
Commit
13cd60d
·
verified ·
1 Parent(s): 5f98c67

Upload folder using huggingface_hub

Browse files
.gitattributes CHANGED
@@ -1,35 +1,36 @@
1
- *.7z filter=lfs diff=lfs merge=lfs -text
2
- *.arrow filter=lfs diff=lfs merge=lfs -text
3
- *.bin filter=lfs diff=lfs merge=lfs -text
4
- *.bz2 filter=lfs diff=lfs merge=lfs -text
5
- *.ckpt filter=lfs diff=lfs merge=lfs -text
6
- *.ftz filter=lfs diff=lfs merge=lfs -text
7
- *.gz filter=lfs diff=lfs merge=lfs -text
8
- *.h5 filter=lfs diff=lfs merge=lfs -text
9
- *.joblib filter=lfs diff=lfs merge=lfs -text
10
- *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
- *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
- *.model filter=lfs diff=lfs merge=lfs -text
13
- *.msgpack filter=lfs diff=lfs merge=lfs -text
14
- *.npy filter=lfs diff=lfs merge=lfs -text
15
- *.npz filter=lfs diff=lfs merge=lfs -text
16
- *.onnx filter=lfs diff=lfs merge=lfs -text
17
- *.ot filter=lfs diff=lfs merge=lfs -text
18
- *.parquet filter=lfs diff=lfs merge=lfs -text
19
- *.pb filter=lfs diff=lfs merge=lfs -text
20
- *.pickle filter=lfs diff=lfs merge=lfs -text
21
- *.pkl filter=lfs diff=lfs merge=lfs -text
22
- *.pt filter=lfs diff=lfs merge=lfs -text
23
- *.pth filter=lfs diff=lfs merge=lfs -text
24
- *.rar filter=lfs diff=lfs merge=lfs -text
25
- *.safetensors filter=lfs diff=lfs merge=lfs -text
26
- saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
- *.tar.* filter=lfs diff=lfs merge=lfs -text
28
- *.tar filter=lfs diff=lfs merge=lfs -text
29
- *.tflite filter=lfs diff=lfs merge=lfs -text
30
- *.tgz filter=lfs diff=lfs merge=lfs -text
31
- *.wasm filter=lfs diff=lfs merge=lfs -text
32
- *.xz filter=lfs diff=lfs merge=lfs -text
33
- *.zip filter=lfs diff=lfs merge=lfs -text
34
- *.zst filter=lfs diff=lfs merge=lfs -text
35
- *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tar filter=lfs diff=lfs merge=lfs -text
29
+ *.tflite filter=lfs diff=lfs merge=lfs -text
30
+ *.tgz filter=lfs diff=lfs merge=lfs -text
31
+ *.wasm filter=lfs diff=lfs merge=lfs -text
32
+ *.xz filter=lfs diff=lfs merge=lfs -text
33
+ *.zip filter=lfs diff=lfs merge=lfs -text
34
+ *.zst filter=lfs diff=lfs merge=lfs -text
35
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ vectorstores/db_faiss/index.faiss filter=lfs diff=lfs merge=lfs -text
README.md CHANGED
@@ -1,12 +1,12 @@
1
- ---
2
- title: Chat Finance Test
3
- emoji: 💬
4
- colorFrom: yellow
5
- colorTo: purple
6
- sdk: gradio
7
- sdk_version: 4.36.1
8
- app_file: app.py
9
- pinned: false
10
- ---
11
-
12
  An example chatbot using [Gradio](https://gradio.app), [`huggingface_hub`](https://huggingface.co/docs/huggingface_hub/v0.22.2/en/index), and the [Hugging Face Inference API](https://huggingface.co/docs/api-inference/index).
 
1
+ ---
2
+ title: Chat Finance Test
3
+ emoji: 💬
4
+ colorFrom: yellow
5
+ colorTo: purple
6
+ sdk: gradio
7
+ sdk_version: 4.36.1
8
+ app_file: app.py
9
+ pinned: false
10
+ ---
11
+
12
  An example chatbot using [Gradio](https://gradio.app), [`huggingface_hub`](https://huggingface.co/docs/huggingface_hub/v0.22.2/en/index), and the [Hugging Face Inference API](https://huggingface.co/docs/api-inference/index).
__pycache__/qabot.cpython-311.pyc ADDED
Binary file (2.1 kB). View file
 
app.py CHANGED
@@ -1,125 +1,60 @@
1
- # import gradio as gr
2
- # from huggingface_hub import InferenceClient
3
-
4
- # """
5
- # For more information on `huggingface_hub` Inference API support, please check the docs: https://huggingface.co/docs/huggingface_hub/v0.22.2/en/guides/inference
6
- # """
7
- # client = InferenceClient("linl03/tinyllama-Fin5k")
8
-
9
-
10
- # def respond(
11
- # message,
12
- # history: list[tuple[str, str]],
13
- # system_message,
14
- # max_tokens,
15
- # temperature,
16
- # top_p,
17
- # ):
18
- # messages = [{"role": "system", "content": system_message}]
19
-
20
- # for val in history:
21
- # if val[0]:
22
- # messages.append({"role": "user", "content": val[0]})
23
- # if val[1]:
24
- # messages.append({"role": "assistant", "content": val[1]})
25
-
26
- # messages.append({"role": "user", "content": message})
27
-
28
- # response = ""
29
-
30
- # for message in client.chat_completion(
31
- # messages,
32
- # max_tokens=max_tokens,
33
- # stream=True,
34
- # temperature=temperature,
35
- # top_p=top_p,
36
- # ):
37
- # token = message.choices[0].delta.content
38
-
39
- # response += token
40
- # yield response
41
-
42
- # """
43
- # For information on how to customize the ChatInterface, peruse the gradio docs: https://www.gradio.app/docs/chatinterface
44
- # """
45
- # demo = gr.ChatInterface(
46
- # respond,
47
- # additional_inputs=[
48
- # gr.Textbox(value="You are a friendly Chatbot.", label="System message"),
49
- # gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="Max new tokens"),
50
- # gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature"),
51
- # gr.Slider(
52
- # minimum=0.1,
53
- # maximum=1.0,
54
- # value=0.95,
55
- # step=0.05,
56
- # label="Top-p (nucleus sampling)",
57
- # ),
58
- # ],
59
- # )
60
-
61
-
62
- # if __name__ == "__main__":
63
- # demo.launch()
64
- import gradio as gr
65
- from langchain_community.chat_models import ChatOllama
66
- from langchain_community.embeddings import GPT4AllEmbeddings
67
-
68
- from langchain.prompts import ChatPromptTemplate
69
- from langchain.schema.runnable import RunnablePassthrough
70
- from langchain_community.vectorstores import FAISS
71
-
72
- vector_db_path = "vectorstores/db_faiss"
73
-
74
- # embeddings = OllamaEmbeddings(model="nomic-embed-text", show_progress=False)
75
- embeddings = GPT4AllEmbeddings(model_name = "all-MiniLM-L6-v2.gguf2.f16.gguf", gpt4all_kwargs = {'allow_download': 'False'})
76
-
77
- db = FAISS.load_local(vector_db_path, embeddings, allow_dangerous_deserialization=True)
78
-
79
- # # Create retriever
80
- retriever = db.as_retriever(
81
- search_type="similarity",
82
- search_kwargs= {"k": 256}
83
- )
84
- local_llm = 'alen_ox'
85
-
86
- llm = ChatOllama(model=local_llm,
87
- keep_alive="3h",
88
- max_tokens=512,
89
- temperature=0)
90
-
91
- # Create prompt template
92
-
93
- def respond(message, history, system_message, path_document):
94
- print(message, history, system_message, path_document)
95
- respon = ''
96
- print("Answer:\n\n", end=" ", flush=True)
97
- template = f"""{system_message}"""+"""
98
- {context}
99
- Question: {question}
100
- """
101
- prompt = ChatPromptTemplate.from_template(template)
102
-
103
- rag_chain = (
104
- {"context": retriever, "question": RunnablePassthrough()}
105
- | prompt
106
- | llm
107
- )
108
- for chunk in rag_chain.stream(message):
109
- respon += chunk.content
110
- print(chunk.content, end="", flush=True)
111
- # print("\n")
112
- # return respon
113
- yield respon
114
-
115
- demo = gr.ChatInterface(
116
- respond,
117
- additional_inputs=[
118
- gr.Textbox(value="Trả lời câu hỏi CHỈ dựa trên ngữ cảnh sau không có thì bảo không có câu trả lời:", label="System message"),
119
- gr.UploadButton("Upload a file", file_count="single"),
120
- # gr.DownloadButton("Download the file")
121
- ],
122
- )
123
-
124
- if __name__ == "__main__":
125
  demo.launch()
 
1
+ import gradio as gr
2
+ from langchain_community.chat_models import ChatOllama
3
+ from langchain_community.embeddings import GPT4AllEmbeddings
4
+
5
+ from langchain.prompts import ChatPromptTemplate
6
+ from langchain.schema.runnable import RunnablePassthrough
7
+ from langchain_community.vectorstores import FAISS
8
+
9
+ vector_db_path = "vectorstores/db_faiss"
10
+
11
+ # embeddings = OllamaEmbeddings(model="nomic-embed-text", show_progress=False)
12
+ embeddings = GPT4AllEmbeddings(model_name = "all-MiniLM-L6-v2.gguf2.f16.gguf", gpt4all_kwargs = {'allow_download': 'False'})
13
+
14
+ db = FAISS.load_local(vector_db_path, embeddings, allow_dangerous_deserialization=True)
15
+
16
+ # # Create retriever
17
+ retriever = db.as_retriever(
18
+ search_type="similarity",
19
+ search_kwargs= {"k": 256}
20
+ )
21
+ local_llm = 'alen_ox'
22
+
23
+ llm = ChatOllama(model=local_llm,
24
+ keep_alive="3h",
25
+ max_tokens=512,
26
+ temperature=0)
27
+
28
+ # Create prompt template
29
+
30
+ def respond(message, history, system_message, path_document):
31
+ print(message, history, system_message, path_document)
32
+ respon = ''
33
+ print("Answer:\n\n", end=" ", flush=True)
34
+ template = f"""{system_message}"""+"""
35
+ {context}
36
+ Question: {question}
37
+ """
38
+ prompt = ChatPromptTemplate.from_template(template)
39
+
40
+ rag_chain = (
41
+ {"context": retriever, "question": RunnablePassthrough()}
42
+ | prompt
43
+ | llm
44
+ )
45
+ for chunk in rag_chain.stream(message):
46
+ respon += chunk.content
47
+ print(chunk.content, end="", flush=True)
48
+ yield respon
49
+
50
+ demo = gr.ChatInterface(
51
+ respond,
52
+ additional_inputs=[
53
+ gr.Textbox(value="Trả lời câu hỏi CHỈ dựa trên ngữ cảnh sau không có thì bảo không có câu trả lời:", label="System message"),
54
+ gr.UploadButton("Upload a file", file_count="single"),
55
+ # gr.DownloadButton("Download the file")
56
+ ],
57
+ )
58
+
59
+ if __name__ == "__main__":
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60
  demo.launch()
rag_ollama_.py ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+
3
+ from langchain_community.chat_models import ChatOllama
4
+ from langchain_community.embeddings import GPT4AllEmbeddings
5
+
6
+ from langchain.prompts import ChatPromptTemplate
7
+ from langchain.schema.runnable import RunnablePassthrough
8
+ from langchain_community.vectorstores import FAISS
9
+ # from langchain_community.embeddings import GPT4AllEmbeddings
10
+
11
+
12
+ # # Create embeddingsclear
13
+ vector_db_path = "vectorstores/db_faiss"
14
+
15
+ # embeddings = OllamaEmbeddings(model="nomic-embed-text", show_progress=False)
16
+ embeddings = GPT4AllEmbeddings(model_name = "all-MiniLM-L6-v2.gguf2.f16.gguf", gpt4all_kwargs = {'allow_download': 'False'})
17
+
18
+ db = FAISS.load_local(vector_db_path, embeddings, allow_dangerous_deserialization=True)
19
+
20
+
21
+ # # Create retriever
22
+ retriever = db.as_retriever(
23
+ search_type="similarity",
24
+ search_kwargs= {"k": 256}
25
+ )
26
+
27
+ # # Create Ollama language model - Gemma 2
28
+ local_llm = 'alen_ox'
29
+
30
+ llm = ChatOllama(model=local_llm,
31
+ keep_alive="3h",
32
+ max_tokens=512,
33
+ temperature=0)
34
+
35
+ # Create prompt template
36
+ template = """Trả lời câu hỏi CHỈ dựa trên ngữ cảnh sau không có thì bảo không có câu trả lời:
37
+ {context}
38
+ Question: {question}
39
+ """
40
+ prompt = ChatPromptTemplate.from_template(template)
41
+
42
+ # Create the RAG chain using LCEL with prompt printing and streaming output
43
+ rag_chain = (
44
+ {"context": retriever, "question": RunnablePassthrough()}
45
+ | prompt
46
+ | llm
47
+ )
48
+
49
+ # Function to ask questions
50
+ def ask_question(question):
51
+ respon = ''
52
+ print("Answer:\n\n", end=" ", flush=True)
53
+ for chunk in rag_chain.stream(question):
54
+ respon += chunk.content
55
+ print(chunk.content, end="", flush=True)
56
+ print("\n")
57
+ return respon
58
+ # print(rag_chain.invoke(question))
59
+
60
+ # Example usage
61
+ if __name__ == "__main__":
62
+ while True:
63
+ user_question = input("Ask a question (or type 'quit' to exit): ")
64
+ if user_question.lower() == 'quit':
65
+ break
66
+ answer = ask_question(user_question)
67
+ print(answer)
68
+ # print("\nFull answer received.\n")
requirements.txt CHANGED
@@ -1,6 +1,6 @@
1
- huggingface_hub==0.22.2
2
- minijinja
3
- ollama
4
- langchain_community
5
- gpt4all
6
  faiss-cpu
 
1
+ huggingface_hub==0.22.2
2
+ minijinja
3
+ ollama
4
+ langchain_community
5
+ gpt4all
6
  faiss-cpu
vectorstores/db_faiss/index.faiss ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:425fb579c21dcf6f3fad4f729c59bf97ccad8ccf5251047ac1bb30a7a0c61751
3
+ size 5904429
vectorstores/db_faiss/index.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d39be923e9e43a29f16238934c77057e6a5094fc6730966100c434f8ba8fd200
3
+ size 1169768