summaryrefslogtreecommitdiff
path: root/Content/posts/2021-06-27-Crude-ML-AI-Powered-Chatbot-Swift.md
diff options
context:
space:
mode:
Diffstat (limited to 'Content/posts/2021-06-27-Crude-ML-AI-Powered-Chatbot-Swift.md')
-rw-r--r--Content/posts/2021-06-27-Crude-ML-AI-Powered-Chatbot-Swift.md68
1 files changed, 62 insertions, 6 deletions
diff --git a/Content/posts/2021-06-27-Crude-ML-AI-Powered-Chatbot-Swift.md b/Content/posts/2021-06-27-Crude-ML-AI-Powered-Chatbot-Swift.md
index 0dcabec..7701c09 100644
--- a/Content/posts/2021-06-27-Crude-ML-AI-Powered-Chatbot-Swift.md
+++ b/Content/posts/2021-06-27-Crude-ML-AI-Powered-Chatbot-Swift.md
@@ -17,6 +17,32 @@ Disclaimer: This is a very crude proof-of-concept, but it does work.
I opened a CSV file and added some sample entries, with a corresponding label.
![Screenshot of Sample Dataset](/assets/posts/swift-chatbot/intent-csv.png)
+
+```csv
+text,label
+hey there,greetings
+hello,greetings
+good morning,greetings
+good evening,greetings
+hi,greetings
+open the pod bay doors,banter
+who let the dogs out,banter
+ahh that's hot,banter
+bruh that's rad,banter
+nothing,banter
+da fuq,banter
+can you tell me details about the compound aspirin,deez-drug
+i want to know about some compounds,deez-drug
+search about the compound,deez-drug
+tell me about the molecule,deez-drug
+tell me about something,banter
+tell me something cool,banter
+tell a joke,banter
+make me a sandwich,banter
+whatcha doing,greetings
+i love you,banter
+```
+
![Screenshot of Create ML Text Classifier](/assets/posts/swift-chatbot/create-intent.png)
## Word Tagging
@@ -26,6 +52,24 @@ This model will be only called if the intent from the classifier is a custom act
I created a sample JSON with only 3 examples (I know, very less, but works for a crude PoC).
![Screenshot of Sample Dataset](/assets/posts/swift-chatbot/drugs-json.png)
+
+```json
+[
+ {
+ "tokens": ["Tell","me","about","the","drug","Aspirin","."],
+ "labels": ["NONE","NONE","NONE","NONE","NONE","COMPOUND","NONE"]
+ },
+ {
+ "tokens": ["Please","tell","me","information","about","the","compound","salicylic","acid","."],
+ "labels": ["NONE","NONE","NONE","NONE","NONE","NONE","NONE","COMPOUND","COMPOUND","NONE"]
+ },
+ {
+ "tokens": ["Information","about","the","compound","Ibuprofen","please","."],
+ "labels": ["NONE","NONE","NONE","NONE","COMPOUND","NONE","NONE"]
+ }
+]
+```
+
![Screenshot of Create ML Text Classifier](/assets/posts/swift-chatbot/create-tagger.png)
## Time to Get Swift-y
@@ -105,14 +149,26 @@ Otherwise, it calls the custom action.
![Screenshot](/assets/posts/swift-chatbot/carbon-4.png)
```swift
-let defaultResponses = [
- "greetings": "Hello",
- "banter": "no, plix no"
+let sampleMessages = [
+ "Hey there, how is it going",
+ "hello, there",
+ "Who let the dogs out",
+ "can you tell me about the compound Geraniin",
+ "what do you know about the compound Ibuprofen",
+ "please, tell me more about the compound",
+ "please, tell me more about the molecule dihydrogen-monoxide"
]
-let customActions = [
- "deez-drug": customAction
-]
+for sampleMessage in sampleMessages {
+ User.message = sampleMessage
+ let prediction = intentPredictor.predictedLabel(for: sampleMessage)
+
+ if (defaultResponses[prediction!] != nil) {
+ print(defaultResponses[prediction!]!)
+ } else if (customActions[prediction!] != nil) {
+ print(customActions[prediction!]!())
+ }
+}
```
![Output](/assets/posts/swift-chatbot/output.png)