diazcalvi commited on
Commit
827c483
1 Parent(s): 728663b
Files changed (6) hide show
  1. .gitignore +3 -0
  2. app.py +107 -1
  3. app2.py +7 -0
  4. data/.gitattributes +54 -0
  5. data/kionlinde.json +0 -0
  6. requirements.txt +4 -0
.gitignore ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+
2
+ *.pdf
3
+
app.py CHANGED
@@ -1,7 +1,113 @@
 
1
  import gradio as gr
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
 
3
  def greet(name):
4
- return "Hello " + name + "!!"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
 
6
  iface = gr.Interface(fn=greet, inputs="text", outputs="text")
7
  iface.launch()
 
1
+ import os
2
  import gradio as gr
3
+ from llama_index import GPTSimpleVectorIndex, SimpleDirectoryReader, ServiceContext,LLMPredictor
4
+ from langchain.chat_models import ChatOpenAI
5
+ from llama_index.llm_predictor.chatgpt import ChatGPTLLMPredictor
6
+ import huggingface_hub
7
+ from huggingface_hub import Repository
8
+ from datetime import datetime
9
+ import csv
10
+
11
+ DATASET_REPO_URL = "https://huggingface.co/datasets/diazcalvi/kionlinde"#"https://huggingface.co/datasets/julien-c/persistent-space-dataset"
12
+ DATA_FILENAME = "kion.json"
13
+ DATA_FILE = os.path.join("data", DATA_FILENAME)
14
+
15
+ HF_TOKEN = os.environ.get("HF_TOKEN")
16
+ print("is none?", HF_TOKEN is None)
17
+
18
+ print("hfh", huggingface_hub.__version__)
19
+
20
+
21
+
22
+ #os.system("git config --global user.name \"Carlos Diaz\"")
23
+ #os.system("git config --global user.email \"diazcalvi@gmail.com\"")
24
+
25
+
26
+ ##repo = Repository(
27
+ # local_dir="data", clone_from=DATASET_REPO_URL, use_auth_token=HF_TOKEN
28
+ #)
29
+
30
+
31
+ index_name = "./data/kion.json"
32
+ documents_folder = "./documents"
33
+ #@st.experimental_memo
34
+ #@st.cache_resource
35
+ def initialize_index(index_name, documents_folder):
36
+ #llm_predictor = ChatGPTLLMPredictor()
37
+ llm_predictor = LLMPredictor(llm=ChatOpenAI(temperature=0, model_name="gpt-3.5-turbo")) # text-davinci-003"))"gpt-3.5-turbo"
38
+
39
+ service_context = ServiceContext.from_defaults(llm_predictor=llm_predictor)
40
+ if os.path.exists(index_name):
41
+ index = GPTSimpleVectorIndex.load_from_disk(index_name)
42
+ else:
43
+ documents = SimpleDirectoryReader(documents_folder).load_data()
44
+ index = GPTSimpleVectorIndex.from_documents(documents)
45
+ index.save_to_disk(index_name)
46
+ print(DATA_FILE)
47
+ index.save_to_disk(DATA_FILE)
48
+
49
+ return index
50
+
51
+ #@st.experimental_memo
52
+ #@st.cache_data(max_entries=200, persist=True)
53
+ def query_index(_index, query_text):
54
+ response = _index.query(query_text)
55
+ return str(response)
56
+
57
+ def generate_html() -> str:
58
+ with open(DATA_FILE) as csvfile:
59
+ reader = csv.DictReader(csvfile)
60
+ rows = []
61
+ for row in reader:
62
+ rows.append(row)
63
+ rows.reverse()
64
+ if len(rows) == 0:
65
+ return "no messages yet"
66
+ else:
67
+ html = "<div class='chatbot'>"
68
+ for row in rows:
69
+ html += "<div>"
70
+ html += f"<span>{row['name']}</span>"
71
+ html += f"<span class='message'>{row['message']}</span>"
72
+ html += "</div>"
73
+ html += "</div>"
74
+ return html
75
+
76
+
77
+ def store_message(name: str, message: str):
78
+ if name and message:
79
+ print(DATA_FILE)
80
+ print(DATA_FILENAME)
81
+ print(DATASET_REPO_URL)
82
+ with open(DATA_FILE, "a") as csvfile:
83
+ writer = csv.DictWriter(csvfile, fieldnames=["name", "message", "time"])
84
+ writer.writerow(
85
+ {"name": name, "message": message, "time": str(datetime.now())}
86
+ )
87
+ commit_url = repo.push_to_hub()
88
+ print(commit_url)
89
+
90
+ return commit_url #generate_html()
91
+
92
+
93
 
94
  def greet(name):
95
+ response = query_index(index, "Act as a KION equipment expert:" + text)
96
+ return response
97
+
98
+
99
+ about any KION/Linde products. The AI knows all the details, loads, sizes, manuals and procedures to support hundreds of parts and equipment. You can check out also our repository [here](https://www.linde-mh.com/en/About-us/Media/)")
100
+
101
+ index = None
102
+ api_key = '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'#st.text_input("Enter your OpenAI API key here:", type="password")
103
+ if api_key:
104
+ os.environ['OPENAI_API_KEY'] = api_key
105
+ index = initialize_index(index_name, documents_folder)
106
+
107
+
108
+ if index is None:
109
+ st.warning("Please enter your api key first.")
110
+
111
 
112
  iface = gr.Interface(fn=greet, inputs="text", outputs="text")
113
  iface.launch()
app2.py ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+
3
+ def greet(name):
4
+ return "Hello " + name + "!!"
5
+
6
+ iface = gr.Interface(fn=greet, inputs="text", outputs="text")
7
+ iface.launch()
data/.gitattributes ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ *.lz4 filter=lfs diff=lfs merge=lfs -text
12
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
13
+ *.model filter=lfs diff=lfs merge=lfs -text
14
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
15
+ *.npy filter=lfs diff=lfs merge=lfs -text
16
+ *.npz filter=lfs diff=lfs merge=lfs -text
17
+ *.onnx filter=lfs diff=lfs merge=lfs -text
18
+ *.ot filter=lfs diff=lfs merge=lfs -text
19
+ *.parquet filter=lfs diff=lfs merge=lfs -text
20
+ *.pb filter=lfs diff=lfs merge=lfs -text
21
+ *.pickle filter=lfs diff=lfs merge=lfs -text
22
+ *.pkl filter=lfs diff=lfs merge=lfs -text
23
+ *.pt filter=lfs diff=lfs merge=lfs -text
24
+ *.pth filter=lfs diff=lfs merge=lfs -text
25
+ *.rar filter=lfs diff=lfs merge=lfs -text
26
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
27
+ saved_model/**/* 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
+ # Audio files - uncompressed
37
+ *.pcm filter=lfs diff=lfs merge=lfs -text
38
+ *.sam filter=lfs diff=lfs merge=lfs -text
39
+ *.raw filter=lfs diff=lfs merge=lfs -text
40
+ # Audio files - compressed
41
+ *.aac filter=lfs diff=lfs merge=lfs -text
42
+ *.flac filter=lfs diff=lfs merge=lfs -text
43
+ *.mp3 filter=lfs diff=lfs merge=lfs -text
44
+ *.ogg filter=lfs diff=lfs merge=lfs -text
45
+ *.wav filter=lfs diff=lfs merge=lfs -text
46
+ # Image files - uncompressed
47
+ *.bmp filter=lfs diff=lfs merge=lfs -text
48
+ *.gif filter=lfs diff=lfs merge=lfs -text
49
+ *.png filter=lfs diff=lfs merge=lfs -text
50
+ *.tiff filter=lfs diff=lfs merge=lfs -text
51
+ # Image files - compressed
52
+ *.jpg filter=lfs diff=lfs merge=lfs -text
53
+ *.jpeg filter=lfs diff=lfs merge=lfs -text
54
+ *.webp filter=lfs diff=lfs merge=lfs -text
data/kionlinde.json ADDED
The diff for this file is too large to render. See raw diff
 
requirements.txt ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ langchain==0.0.123
2
+ llama-index==0.5.1
3
+ streamlit==1.19.0
4
+ PyPDF2