Register
Login
Resources
Docs Blog Datasets Glossary Case Studies Tutorials & Webinars
Product
Data Engine LLMs Platform Enterprise
Pricing Explore
Connect to our Discord channel

TriggerScorable.cs 1.5 KB

You have to be logged in to leave a comment. Sign In
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
  1. namespace TestBot.Scorables
  2. {
  3. using System.Threading;
  4. using System.Threading.Tasks;
  5. using Microsoft.Bot.Builder.Dialogs.Internals;
  6. using Microsoft.Bot.Builder.Internals.Fibers;
  7. using Microsoft.Bot.Builder.Scorables.Internals;
  8. using Microsoft.Bot.Connector;
  9. public abstract class TriggerScorable : ScorableBase<IActivity, bool, double>
  10. {
  11. protected readonly IBotToUser BotToUser;
  12. protected readonly IBotData BotData;
  13. public TriggerScorable(IBotToUser botToUser, IBotData botData)
  14. {
  15. SetField.NotNull(out this.BotToUser, nameof(botToUser), botToUser);
  16. SetField.NotNull(out this.BotData, nameof(botData), botData);
  17. }
  18. public abstract string Trigger { get; }
  19. protected override Task DoneAsync(IActivity item, bool state, CancellationToken token)
  20. {
  21. return Task.CompletedTask;
  22. }
  23. protected override double GetScore(IActivity item, bool state)
  24. {
  25. return state ? 1 : 0;
  26. }
  27. protected override bool HasScore(IActivity item, bool state)
  28. {
  29. return state;
  30. }
  31. protected override Task<bool> PrepareAsync(IActivity item, CancellationToken token)
  32. {
  33. var message = item.AsMessageActivity();
  34. if (message == null)
  35. {
  36. return Task.FromResult(false);
  37. }
  38. return Task.FromResult(message.Text.ToLowerInvariant().Contains(this.Trigger.ToLowerInvariant()));
  39. }
  40. }
  41. }
Tip!

Press p or to see the previous file or, n or to see the next file

Comments

Loading...