Chidamma commited on
Commit
e84f8a2
·
verified ·
1 Parent(s): 95041c1

Upload 6 files

Browse files
Files changed (6) hide show
  1. .gitattributes +36 -36
  2. README.md +12 -12
  3. app.py +141 -123
  4. documents.pkl +3 -0
  5. interface.py +45 -0
  6. requirements.txt +35 -35
.gitattributes CHANGED
@@ -1,36 +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
36
- data/embeddings.py 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
+ data/embeddings.py filter=lfs diff=lfs merge=lfs -text
README.md CHANGED
@@ -1,12 +1,12 @@
1
- ---
2
- title: Anath
3
- emoji: 💬
4
- colorFrom: yellow
5
- colorTo: purple
6
- sdk: gradio
7
- sdk_version: 5.0.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: ClearMLIISC
3
+ emoji: 🐢
4
+ colorFrom: green
5
+ colorTo: purple
6
+ sdk: gradio
7
+ sdk_version: 5.7.0
8
+ app_file: app.py
9
+ pinned: false
10
+ ---
11
+
12
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
app.py CHANGED
@@ -1,124 +1,142 @@
1
- import gradio as gr
2
- from langchain_community.chat_models import ChatOpenAI
3
- from langchain.memory import ConversationBufferMemory, SimpleMemory
4
- from langchain.agents import initialize_agent, AgentType
5
- from langchain_community.callbacks import ClearMLCallbackHandler
6
- from langchain_core.callbacks import StdOutCallbackHandler
7
- from clearml import Logger, Task
8
- from dotenv import load_dotenv
9
- import os
10
- import agent.planning_agent as planning_agent
11
- import logging
12
-
13
- # Configure logging
14
- logging.basicConfig(level=logging.INFO)
15
- logger = logging.getLogger(__name__)
16
-
17
- # Global variables
18
- llm = None
19
- chat_memory = None
20
- query_memory = None
21
- clearml_callback = None
22
-
23
- def initialize_components():
24
- global llm, chat_memory, query_memory,clearml_callback
25
- load_dotenv()
26
- #api_key = os.environ['OA_API']
27
- #os.environ['OPENAI_API_KEY'] = api_key
28
-
29
- OPENAI_API_KEY='sk-ah4Ar22m-1gdxwT5lg0KAodXVK5wt19cOzMBCV1mZ0T3BlbkFJzIhW66UefL-sl55mh4W-bcP1jUymqLHFuFEWC5bl8A'
30
- CLEARML_API_ACCESS_KEY="MXUXWWPITREXDVYSU3PLC2D7PBJPH0"
31
- CLEARML_API_SECRET_KEY="TsAQnRl5bvA9k-zPvqwcMRrULkRJUR_IoBuFmj_uzhMAzNeADs5AtHVhIlks7CHcNco"
32
- SERPAPI_API_KEY="619f2302253fbe56448bcf82565caf2a3263d845944682533f10b09a0d1650e6"
33
-
34
- llm = ChatOpenAI(
35
- model_name="gpt-3.5-turbo",
36
- temperature=0,
37
- api_key='sk-ah4Ar22m-1gdxwT5lg0KAodXVK5wt19cOzMBCV1mZ0T3BlbkFJzIhW66UefL-sl55mh4W-bcP1jUymqLHFuFEWC5bl8A'
38
- )
39
-
40
- # Initialize memories
41
- chat_memory = ConversationBufferMemory(
42
- memory_key="chat_history",
43
- return_messages=True
44
- )
45
- # Setup and use the ClearML Callback
46
- clearml_callback = ClearMLCallbackHandler(
47
- task_type="inference",
48
- project_name="langchain_callback_demo",
49
- task_name="llm",
50
- tags=["test"],
51
- # Change the following parameters based on the amount of detail you want tracked
52
- visualize=True,
53
- complexity_metrics=True,
54
- stream_logs=True,)
55
-
56
- callbacks = [StdOutCallbackHandler(), clearml_callback]
57
-
58
- # Initialize planning agent with both memories
59
- planning_agent.initialize_planning_agent(llm, chat_memory, query_memory, callbacks)
60
-
61
- logger.info("Components initialized successfully")
62
-
63
- def process_query(query, history):
64
- try:
65
- # Restore chat history from Gradio's history
66
- if history:
67
- for human_msg, ai_msg in history:
68
- if chat_memory and hasattr(chat_memory, 'chat_memory'):
69
- chat_memory.chat_memory.add_user_message(human_msg)
70
- chat_memory.chat_memory.add_ai_message(ai_msg)
71
-
72
- # Store original query in query memory
73
- query_memory.memories['original_query'] = query
74
-
75
- # Execute query through planning agent
76
- response = planning_agent.execute(query)
77
-
78
- # Add current interaction to chat memory
79
- if chat_memory and hasattr(chat_memory, 'chat_memory'):
80
- chat_memory.chat_memory.add_user_message(query)
81
- chat_memory.chat_memory.add_ai_message(response)
82
-
83
- return response
84
-
85
- except Exception as e:
86
- error_msg = f"Error processing query: {str(e)}"
87
- logger.error(f"Error details: {str(e)}")
88
-
89
- if chat_memory and hasattr(chat_memory, 'chat_memory'):
90
- chat_memory.chat_memory.add_user_message(query)
91
- chat_memory.chat_memory.add_ai_message(error_msg)
92
-
93
- return error_msg
94
-
95
- def clear_context():
96
- planning_agent.clear_context()
97
- chat_memory.clear()
98
- query_memory.memories.clear()
99
- return [], []
100
-
101
- def create_gradio_app():
102
- from interface import create_interface
103
- return create_interface(process_query, clear_context)
104
-
105
- def main():
106
- """Main application entry point"""
107
- try:
108
- initialize_components()
109
- app = create_gradio_app()
110
- app.queue()
111
- app.launch(server_name="0.0.0.0", server_port=7860, share=True)
112
-
113
- a_task = Task.get_task(project_name='langchain_callback_demo', task_name='llm')
114
- loer = a_task.get_logger()
115
- report_logs(loer)
116
- # report text as debug example
117
- report_debug_text(loer)
118
- loer.flush()
119
- except Exception as e:
120
- logger.error(f"Error in main: {str(e)}")
121
- raise
122
-
123
- if __name__ == "__main__":
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
124
  main()
 
1
+ import gradio as gr
2
+ from langchain_community.chat_models import ChatOpenAI
3
+ from langchain.memory import ConversationBufferMemory, SimpleMemory
4
+ from langchain.agents import initialize_agent, AgentType
5
+ from langchain_community.callbacks import ClearMLCallbackHandler
6
+ from langchain_core.callbacks import StdOutCallbackHandler
7
+ from clearml import Logger, Task
8
+ from dotenv import load_dotenv
9
+ from dotenv import load_dotenv, find_dotenv
10
+ import os
11
+ import agent.planning_agent as planning_agent
12
+ import logging
13
+
14
+ # Configure logging
15
+ logging.basicConfig(level=logging.INFO)
16
+ logger = logging.getLogger(__name__)
17
+
18
+ # Global variables
19
+ llm = None
20
+ chat_memory = None
21
+ query_memory = None
22
+ clearml_callback = None
23
+
24
+ def initialize_components():
25
+ global llm, chat_memory, query_memory, clearml_callback
26
+ load_dotenv()
27
+
28
+ OPENAI_API_KEY="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"
29
+ CLEARML_API_ACCESS_KEY="NYZZ07E2ZEW08V4DUGYY2PA7O6JX5F"
30
+ CLEARML_API_SECRET_KEY="MkfQrIOuKNFRWHfCz32cN-UVm_19M7_vgxAwRn8twnvHYJ1xeqD9T2GZcIX9RwnD8mw"
31
+ SERPAPI_API_KEY="619f2302253fbe56448bcf82565caf2a3263d845944682533f10b09a0d1650e6"
32
+
33
+ # openai.api_key=OPENAI_API_KEY
34
+
35
+ llm = ChatOpenAI(
36
+ model_name="gpt-3.5-turbo",
37
+ temperature=0,
38
+ openai_api_key="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"
39
+ )
40
+
41
+ # Initialize memories
42
+ chat_memory = ConversationBufferMemory(
43
+ memory_key="chat_history",
44
+ return_messages=True
45
+ )
46
+ query_memory = SimpleMemory()
47
+
48
+ # Setup and use the ClearML Callback
49
+ clearml_callback = ClearMLCallbackHandler(
50
+ task_type="inference",
51
+ project_name="langchain_callback_demo",
52
+ task_name="llm",
53
+ tags=["test"],
54
+ # Change the following parameters based on the amount of detail you want tracked
55
+ visualize=True,
56
+ complexity_metrics=True,
57
+ stream_logs=True,)
58
+
59
+ callbacks = [StdOutCallbackHandler(), clearml_callback]
60
+
61
+ # Initialize planning agent with both memories
62
+ planning_agent.initialize_planning_agent(llm, chat_memory, query_memory, callbacks)
63
+
64
+ logger.info("Components initialized successfully")
65
+
66
+ def process_query(query, history):
67
+ try:
68
+ # Restore chat history from Gradio's history
69
+ if history:
70
+ for human_msg, ai_msg in history:
71
+ if chat_memory and hasattr(chat_memory, 'chat_memory'):
72
+ chat_memory.chat_memory.add_user_message(human_msg)
73
+ chat_memory.chat_memory.add_ai_message(ai_msg)
74
+
75
+ # Store original query in query memory
76
+ query_memory.memories['original_query'] = query
77
+
78
+ # Execute query through planning agent
79
+ response = planning_agent.execute(query)
80
+ #clearml_callback.flush_tracker(name="Planning agent", finish=True)
81
+ #clearml_callback.flush_tracker(langchain_asset=llm, name="simple_sequential")
82
+
83
+ # Add current interaction to chat memory
84
+ if chat_memory and hasattr(chat_memory, 'chat_memory'):
85
+ chat_memory.chat_memory.add_user_message(query)
86
+ chat_memory.chat_memory.add_ai_message(response)
87
+
88
+ return response
89
+
90
+ except Exception as e:
91
+ error_msg = f"Error processing query: {str(e)}"
92
+ logger.error(f"Error details: {str(e)}")
93
+
94
+ if chat_memory and hasattr(chat_memory, 'chat_memory'):
95
+ chat_memory.chat_memory.add_user_message(query)
96
+ chat_memory.chat_memory.add_ai_message(error_msg)
97
+
98
+ return error_msg
99
+
100
+ def clear_context():
101
+ planning_agent.clear_context()
102
+ chat_memory.clear()
103
+ query_memory.memories.clear()
104
+ return [], []
105
+
106
+ def create_gradio_app():
107
+ from interface import create_interface
108
+ return create_interface(process_query, clear_context)
109
+
110
+ def report_table(loer, iteration=0):
111
+ # type: (Logger, int) -> ()
112
+ """
113
+ reporting tables to the plots section
114
+ :param logger: The task.logger to use for sending the plots
115
+ :param iteration: The iteration number of the current reports
116
+ """
117
+ # report table
118
+ # Report table - CSV from path
119
+ csv_path = './data/cleaned_dataset_full.csv'
120
+ loer.report_table("Data Set Capstone", "remote csv", iteration=iteration, csv=csv_path)
121
+
122
+ def main():
123
+ """Main application entry point"""
124
+ try:
125
+ initialize_components()
126
+ app = create_gradio_app()
127
+ app.queue()
128
+ app.launch(server_name="0.0.0.0", server_port=7860, share=True)
129
+ a_task = Task.get_task(project_name='langchain_callback_demo', task_name='llm')
130
+ loer = a_task.get_logger()
131
+ report_logs(loer)
132
+ # report text as debug example
133
+ report_debug_text(loer)
134
+ # report graphs
135
+ report_table(loer)
136
+ loer.flush()
137
+ except Exception as e:
138
+ logger.error(f"Error in main: {str(e)}")
139
+ raise
140
+
141
+ if __name__ == "__main__":
142
  main()
documents.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0132d52582d53422098dfaec3a361e369e791db0a137d8b012ad920851f18b3f
3
+ size 2382882
interface.py ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+
3
+ def create_interface(process_query, clear_context):
4
+ with gr.Blocks(title="AI Assistant") as demo:
5
+ chatbot = gr.Chatbot(
6
+ [],
7
+ elem_id="chatbot",
8
+ bubble_full_width=False,
9
+ height=400
10
+ )
11
+
12
+ with gr.Row():
13
+ msg = gr.Textbox(
14
+ label="Your Message",
15
+ placeholder="Type your message here...",
16
+ scale=8
17
+ )
18
+ submit = gr.Button("Submit", scale=1)
19
+
20
+ clear = gr.Button("Clear")
21
+
22
+ def process_message(message, history):
23
+ response = process_query(message, history)
24
+ history.append((message, response))
25
+ return "", history
26
+
27
+ msg.submit(
28
+ process_message,
29
+ [msg, chatbot],
30
+ [msg, chatbot]
31
+ )
32
+
33
+ submit.click(
34
+ process_message,
35
+ [msg, chatbot],
36
+ [msg, chatbot]
37
+ )
38
+
39
+ clear.click(
40
+ clear_context,
41
+ None,
42
+ [chatbot, msg]
43
+ )
44
+
45
+ return demo
requirements.txt CHANGED
@@ -1,36 +1,36 @@
1
- # LangChain Ecosystem
2
- langchain==0.1.3
3
- langchain_openai==0.0.5
4
- langchain-community
5
- langchain-core
6
-
7
- # Vector Databases & Similarity Search
8
- chromadb>=0.5.0
9
- faiss-cpu
10
-
11
- # OpenAI
12
- openai==1.55.3
13
- tiktoken>=0.5.2
14
-
15
- # UI Framework
16
- gradio==4.44.1
17
- setuptools>=65.5.1
18
-
19
- # Data Processing & Utils
20
- numpy==1.26.2
21
- pandas==2.1.3
22
- python-dotenv==1.0.0
23
-
24
- # Core Dependencies
25
- #pydantic==2.5.2
26
- typing-extensions>=4.11
27
- requests==2.31.0
28
-
29
- # ClearML
30
- clearml
31
- spacy>=3.0.0,<4.0.0
32
- en_core_web_sm @ https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.7.1/en_core_web_sm-3.7.1-py3-none-any.whl
33
- textstat
34
- serpapi==0.1.5
35
- google-search-results
36
  numexpr
 
1
+ # LangChain Ecosystem
2
+ langchain==0.1.3
3
+ langchain_openai==0.0.5
4
+ langchain-community
5
+ langchain-core
6
+
7
+ # Vector Databases & Similarity Search
8
+ chromadb>=0.5.0
9
+ faiss-cpu
10
+
11
+ # OpenAI
12
+ openai==1.55.3
13
+ tiktoken>=0.5.2
14
+
15
+ # UI Framework
16
+ gradio==4.44.1
17
+ setuptools>=65.5.1
18
+
19
+ # Data Processing & Utils
20
+ numpy==1.26.2
21
+ pandas==2.1.3
22
+ python-dotenv==1.0.0
23
+
24
+ # Core Dependencies
25
+ #pydantic==2.5.2
26
+ typing-extensions>=4.11
27
+ requests==2.31.0
28
+
29
+ # ClearML
30
+ clearml
31
+ spacy>=3.0.0,<4.0.0
32
+ en_core_web_sm @ https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.7.1/en_core_web_sm-3.7.1-py3-none-any.whl
33
+ textstat
34
+ serpapi==0.1.5
35
+ google-search-results
36
  numexpr