新增LLM追踪索引存储
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
import { getDefaultDatabasePath } from "../db/connection";
|
||||
import { getAppCloudflareEnv } from "../runtime/cloudflare";
|
||||
import { createD1TraceRepository } from "./d1-trace-repository";
|
||||
import { createSqliteTraceRepository } from "./sqlite-trace-repository";
|
||||
import type { LlmTraceCall, LlmTraceRun } from "./trace-types";
|
||||
|
||||
export interface LlmTraceRepository {
|
||||
putRun(run: LlmTraceRun): Promise<void>;
|
||||
putCall(call: LlmTraceCall): Promise<void>;
|
||||
getRun(jobId: string): Promise<LlmTraceRun | null>;
|
||||
getLatestRun(): Promise<LlmTraceRun | null>;
|
||||
listCalls(jobId: string): Promise<LlmTraceCall[]>;
|
||||
listTerminalRunsExcept(jobId: string): Promise<LlmTraceRun[]>;
|
||||
deleteRun(jobId: string): Promise<void>;
|
||||
}
|
||||
|
||||
export function getLlmTraceRepositoryFromRuntime(): LlmTraceRepository {
|
||||
if (process.env.APP_RUNTIME === "cloudflare") {
|
||||
const env = getAppCloudflareEnv();
|
||||
if (!env?.DB) throw new Error("Cloudflare D1 binding DB is required");
|
||||
return createD1TraceRepository(env.DB);
|
||||
}
|
||||
return createSqliteTraceRepository(getDefaultDatabasePath());
|
||||
}
|
||||
Reference in New Issue
Block a user