165 void* (*init)(
const char* api_key,
const char* base_url);
179 int (*embeddings)(
void* state,
186 void (*free)(
void* state);
204csilk_ai_t*
csilk_ai_new(
const char* driver_name,
const char* api_key,
const char* base_url);
Opaper AI engine handle wrapping a single driver backend. Each instance pairs a driver vtable with it...
Definition ai.c:154
int total_tokens
Definition ai.h:127
int csilk_ai_embeddings(csilk_ai_t *ai, const char *model, const char **input, size_t count, csilk_ai_embeddings_response_t *res)
Generate embeddings for the given input strings.
Definition ai.c:412
char * error_message
Definition ai.h:129
size_t capacity
Definition ai.h:193
csilk_ai_tool_function_t function
Definition ai.h:88
int timeout_ms
Definition ai.h:114
uint64_t completion_tokens
Definition ai.h:40
uint64_t requests_total
Definition ai.h:37
size_t tool_count
Definition ai.h:116
char * name
Definition ai.h:94
void csilk_ai_register_driver(const csilk_ai_driver_t *driver)
Register a new AI driver.
Definition ai.c:165
double temperature
Definition ai.h:103
double frequency_penalty
Definition ai.h:106
const char * description
Definition ai.h:81
uint64_t errors_total
Definition ai.h:41
uint64_t duration_us_total
Definition ai.h:42
double top_p
Definition ai.h:104
csilk_ai_context_t * csilk_ai_context_new(size_t max_history)
Initialize a new conversation context.
Definition ai.c:595
void csilk_ai_get_stats(csilk_ai_stats_t *stats)
Get current AI engine statistics.
Definition ai.c:96
bool stream
Definition ai.h:111
double presence_penalty
Definition ai.h:105
int total_tokens
Definition ai.h:139
const char ** stop
Definition ai.h:108
void csilk_ai_embeddings_response_free(csilk_ai_embeddings_response_t *res)
Free an embeddings response structure.
Definition ai.c:574
size_t dimension
Definition ai.h:136
const char * tool_choice
Definition ai.h:117
char * arguments
Definition ai.h:95
size_t tool_call_count
Definition ai.h:124
csilk_ai_t * csilk_ai_new(const char *driver_name, const char *api_key, const char *base_url)
Create a new AI instance with a specific driver.
Definition ai.c:204
const char * user
Definition ai.h:110
void csilk_ai_chat_response_free(csilk_ai_chat_response_t *res)
Free a chat response structure.
Definition ai.c:552
csilk_ai_tool_t * tools
Definition ai.h:115
char * raw_response
Definition ai.h:128
const char * role
Definition ai.h:69
size_t message_count
Definition ai.h:102
float * values
Definition ai.h:135
int prompt_tokens
Definition ai.h:138
size_t stop_count
Definition ai.h:109
const char * model
Definition ai.h:100
void(* csilk_ai_chat_async_cb)(int status, csilk_ai_chat_response_t *res, void *user_data)
Callback for asynchronous chat completion.
Definition ai.h:144
const char * content
Definition ai.h:70
csilk_ai_tool_call_t * tool_calls
Definition ai.h:123
char * content
Definition ai.h:122
const char * type
Definition ai.h:87
size_t count
Definition ai.h:137
char * error_message
Definition ai.h:140
const char * name
Definition ai.h:80
size_t max_history
Definition ai.h:194
void csilk_ai_register_monitor(void *c)
Register a WebSocket monitor for real-time AI events.
Definition ai.c:128
void(* csilk_ai_embeddings_async_cb)(int status, csilk_ai_embeddings_response_t *res, void *user_data)
Callback for asynchronous embeddings.
Definition ai.h:147
int prompt_tokens
Definition ai.h:125
csilk_ai_message_t * messages
Definition ai.h:191
void csilk_ai_context_clear(csilk_ai_context_t *ctx)
Clear all messages from the context.
Definition ai.c:658
uint64_t prompt_tokens
Definition ai.h:39
int csilk_ai_chat(csilk_ai_t *ai, const csilk_ai_chat_request_t *req, csilk_ai_chat_response_t *res)
Perform a chat completion.
Definition ai.c:256
csilk_ai_message_t * messages
Definition ai.h:101
void csilk_ai_free(csilk_ai_t *ai)
Free an AI handle.
Definition ai.c:537
void csilk_ai_context_add(csilk_ai_context_t *ctx, const char *role, const char *content)
Add a message to the context.
Definition ai.c:619
int completion_tokens
Definition ai.h:126
char * csilk_ai_stats_to_json(const csilk_ai_stats_t *stats)
Convert AI statistics to a JSON string.
Definition ai.c:110
uint64_t tokens_total
Definition ai.h:38
void * parameters_json
Definition ai.h:82
void csilk_ai_chat_async(csilk_ai_t *ai, const csilk_ai_chat_request_t *req, csilk_ai_chat_async_cb cb, void *user_data)
Perform an asynchronous chat completion.
Definition ai.c:371
void csilk_ai_embeddings_async(csilk_ai_t *ai, const char *model, const char **input, size_t count, csilk_ai_embeddings_async_cb cb, void *user_data)
Generate embeddings asynchronously.
Definition ai.c:502
csilk_ai_stream_cb on_chunk
Definition ai.h:112
void(* csilk_ai_stream_cb)(const char *chunk, void *user_data)
Callback for streaming mode.
Definition ai.h:76
void * user_data
Definition ai.h:113
void csilk_ai_context_free(csilk_ai_context_t *ctx)
Free a conversation context.
Definition ai.c:674
int max_tokens
Definition ai.h:107
size_t count
Definition ai.h:192
char * id
Definition ai.h:93
Request parameters for chat completion.
Definition ai.h:99
Response data from a chat completion.
Definition ai.h:121
Helper to manage conversation context and history.
Definition ai.h:190
Response data for embeddings.
Definition ai.h:134
A single message in a chat conversation.
Definition ai.h:68
AI Engine statistics.
Definition ai.h:36
Virtual function table implemented by each AI provider backend.
Definition ai.h:158
const char * name
Definition ai.h:159