ai_chatbot 0.1.6 → 0.1.6.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 726472f08ac5fcbed289fcd127215efb58823399b4c1e960ef4a9ae35a4ce368
4
- data.tar.gz: 59cc5bbe59655f7863970fb32ee66279d308208af82b5ca7d3462748146972de
3
+ metadata.gz: 63e218e69731be19e33a2b260fa04382dd1f3da77d9a8e20f0ee1bd8eac4fc97
4
+ data.tar.gz: bb380d89a7d15f29b426b33df682421412f62a41e9f1891858121dbb9c8b2de2
5
5
  SHA512:
6
- metadata.gz: 4611e846bcb29c1a0f5466a7b9269640ab8bb74ad8bb221e885f0c5fe07d2ec92e9a98aedec1b855fcc8ff6590a885c8f3522e4d8b5863724e7495ebc2a963fe
7
- data.tar.gz: bb5dfc83841117e9f001d7691fa0fc4a1d439bf53cd7dc535b34a2f5a1f3b24c999d5a34d8cc407af7f4a036128fd280cf8998804c346a07364251bf885176ba
6
+ metadata.gz: 55d0946bd34c6009ac0029a6f4c183d6059b75eef2552b9eaa6c3905277209a13bf1e6e43b5b27dbabb1e5cf5a972f13ad1ae73902465bbc0256f6b09ebcf8ab
7
+ data.tar.gz: 397a9e37b9c225a25eb4765e5ad5e2377e7c64566cb623f131fc1bfe8d3fd298b8f0a3214fe9661d56d2a7fd2db94fc6a26cd357bc9036ad4d22407d9dd291e7
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AiChatbot
4
- VERSION = "0.1.6"
4
+ VERSION = "0.1.6.1"
5
5
  end
data/lib/ai_chatbot.rb CHANGED
@@ -27,7 +27,7 @@ module AiChatbot
27
27
 
28
28
  # Method to train the model with a new question-answer pair
29
29
  def self.update_answer(existing_question, new_answer)
30
- stdout, stderr, status = Open3.capture3("python3", "#{__dir__}/ml_model.py", "update_answer", new_question, new_answer)
30
+ stdout, stderr, status = Open3.capture3("python3", "#{__dir__}/ml_model.py", "update_answer", existing_question, new_answer)
31
31
 
32
32
  if status.success?
33
33
  return stdout.strip
@@ -36,8 +36,8 @@ module AiChatbot
36
36
  end
37
37
  end
38
38
 
39
- def self.update_question(existing_question, new_question)
40
- stdout, stderr, status = Open3.capture3("python3", "#{__dir__}/ml_model.py", "update_question", new_question, new_answer)
39
+ def self.update_or_delete_question(existing_question, new_question)
40
+ stdout, stderr, status = Open3.capture3("python3", "#{__dir__}/ml_model.py", "update_or_delete_question", existing_question, new_answer)
41
41
 
42
42
  if status.success?
43
43
  return stdout.strip
@@ -46,7 +46,7 @@ module AiChatbot
46
46
  end
47
47
  end
48
48
 
49
- def self.list_of_questions
49
+ def self.list_questions
50
50
  stdout, stderr, status = Open3.capture3("python3", "#{__dir__}/ml_model.py", "list_questions")
51
51
 
52
52
  if status.success?
data/lib/ml_model.py CHANGED
@@ -36,8 +36,8 @@ def main(action, query=None, new_answer=None):
36
36
  return train_model(query, new_answer)
37
37
  elif action == "update_answer":
38
38
  return update_answer(query, new_answer)
39
- elif action == "update_question":
40
- return update_question(query, new_answer) # Corrected here, calling the right function
39
+ elif action == "update_or_delete_question":
40
+ return update_or_delete_question(query, new_answer) # Corrected here, calling the right function
41
41
  elif action == "list_questions":
42
42
  return list_questions()
43
43
 
@@ -91,23 +91,36 @@ def update_answer(existing_question, new_answer):
91
91
  else:
92
92
  return "Question not found. Please provide a valid question."
93
93
 
94
- def update_question(existing_question, new_question):
94
+ def update_or_delete_question(existing_question, new_question=None):
95
95
  global questions # Only 'questions' is global, not 'new_question'
96
-
96
+
97
97
  if existing_question in questions:
98
- # Find the index of the existing question
99
- index = questions.index(existing_question)
100
- # Update the question
101
- questions[index] = new_question
102
- # Retrain the model with updated data
103
- model.fit(questions, answers)
104
- # Save the updated model and data
105
- with open("qa_model.pkl", "wb") as f:
106
- pickle.dump({"questions": questions, "answers": answers}, f)
107
- return f"Question updated from '{existing_question}' to '{new_question}'"
98
+ if new_question:
99
+ # Find the index of the existing question
100
+ index = questions.index(existing_question)
101
+ # Update the question
102
+ questions[index] = new_question
103
+ # Retrain the model with updated data
104
+ model.fit(questions, answers)
105
+ # Save the updated model and data
106
+ with open("qa_model.pkl", "wb") as f:
107
+ pickle.dump({"questions": questions, "answers": answers}, f)
108
+ return f"Question updated from '{existing_question}' to '{new_question}'"
109
+ else:
110
+ # Remove the question if no new question is provided
111
+ index = questions.index(existing_question)
112
+ del questions[index]
113
+ del answers[index] # Ensure you also delete the corresponding answer
114
+ # Retrain the model with updated data
115
+ model.fit(questions, answers)
116
+ # Save the updated model and data
117
+ with open("qa_model.pkl", "wb") as f:
118
+ pickle.dump({"questions": questions, "answers": answers}, f)
119
+ return f"Question '{existing_question}' deleted successfully."
108
120
  else:
109
121
  return "Question not found. Please provide a valid question."
110
122
 
123
+
111
124
  def list_questions():
112
125
  global questions
113
126
  return questions
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ai_chatbot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sanket
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-09-20 00:00:00.000000000 Z
11
+ date: 2024-09-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: open3