@endlessriver/optimaiz
Version:
Client SDK for interacting with the Optimaiz logging & trace system.
113 lines (112 loc) • 3.27 kB
TypeScript
export type Role = "system" | "user" | "assistant";
export type MessageContent = {
type: "text" | "image" | "audio" | "video";
role: Role;
value: string;
mimeType?: string;
extractedText?: string;
};
export type Feedback = {
rating?: "up" | "down";
comment?: string;
submittedAt?: Date;
labels?: string[];
};
export declare class OptimaizClient {
private config;
constructor(config: {
token: string;
});
private post;
startTrace(data: {
traceId?: string;
agentId?: string;
flowId?: string;
threadId?: string;
sessionId?: string;
userId?: string;
promptTemplate?: MessageContent[];
promptVariables?: Record<string, string>;
provider: string;
model: string;
modelParams?: Record<string, any>;
metadata?: Record<string, any>;
tags?: string[];
}): Promise<any>;
appendResponse(data: {
traceId: string;
rawResponse?: any;
provider?: string;
model?: string;
threadId?: string;
userId?: string;
agentId?: string;
flowId?: string;
sessionId?: string;
}): Promise<any>;
finalizeTrace(traceId: string): Promise<any>;
logError(traceId: string, error: {
message: string;
code?: string;
details?: any;
}): Promise<any>;
sendFeedback(traceId: string, feedback: Feedback): Promise<any>;
composePrompts(templates: {
role: Role;
content: string;
type?: MessageContent["type"];
}[], variables: Record<string, string>): {
prompts: MessageContent[];
promptTemplates: MessageContent[];
promptVariables: Record<string, string>;
};
wrapLLMCall<T>({ traceId, agentId, flowId, threadId, sessionId, userId, promptTemplate, promptVariables, provider, model, modelParams, metadata, tags, call, }: {
traceId?: string;
agentId?: string;
flowId?: string;
threadId?: string;
userId?: string;
sessionId?: string;
promptTemplate?: MessageContent[];
promptVariables?: Record<string, string>;
provider: string;
model: string;
modelParams?: Record<string, any>;
metadata?: Record<string, any>;
tags?: string[];
call: () => Promise<T>;
}): Promise<{
response: T;
traceId: string;
}>;
generatePromptFromTools({ toolInfo, toolInput, }: {
toolInfo: Array<{
name: string;
description?: string;
parameters?: any;
}>;
toolInput: {
name: string;
arguments: Record<string, any>;
};
}): {
promptTemplate: MessageContent[];
promptVariables: Record<string, string>;
};
call(data: {
traceId?: string;
promptTemplate: MessageContent[];
promptVariables: Record<string, string>;
modelParams?: Record<string, any>;
threadId?: string;
userId?: string;
agentId?: string;
flowId?: string;
sessionId?: string;
metadata?: Record<string, any>;
tags?: string[];
}): Promise<{
data: any;
error?: any;
}>;
}