summaryrefslogtreecommitdiff
path: root/include/hybbx
diff options
context:
space:
mode:
Diffstat (limited to 'include/hybbx')
-rw-r--r--include/hybbx/aichat.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/include/hybbx/aichat.h b/include/hybbx/aichat.h
new file mode 100644
index 0000000..342e0c7
--- /dev/null
+++ b/include/hybbx/aichat.h
@@ -0,0 +1,39 @@
+#ifndef HYBBX_AICHAT_H
+#define HYBBX_AICHAT_H
+
+#include "hybbx/types.h"
+#include "hybbx/config.h"
+#include "hybbx/session.h"
+#include "hybbx/service.h"
+#include "hybbx/command.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct hybbx_aichat_config {
+ int enabled;
+ char provider[32];
+ char api_key[256];
+ char api_url[256];
+ char model[128];
+ unsigned max_tokens;
+ unsigned rate_limit_per_user_hour;
+ unsigned timeout_sec;
+ char site_url[128];
+ char site_name[128];
+} hybbx_aichat_config_t;
+
+/** Load AI Chat configuration from INI config. */
+void hybbx_aichat_config_init(hybbx_aichat_config_t *cfg, const hybbx_config_t *config);
+
+/** Handle /aichat (/ai, /ask) session command. */
+hybbx_result_t cmd_aichat(hybbx_service_t *service,
+ hybbx_session_t *session,
+ const hybbx_parsed_command_t *cmd);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* HYBBX_AICHAT_H */
git clone -b <branch> https://cgit.mode42.com/<repo>.git
git clone -b <branch> git://cgit.mode42.com/<repo>.git

info@mode42.com