Skip to content

Commit

Permalink
fix async prompt logging (#2673)
Browse files Browse the repository at this point in the history
  • Loading branch information
colegottdank committed Sep 20, 2024
1 parent 93f5004 commit c5e5fe1
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 1 deletion.
1 change: 1 addition & 0 deletions valhalla/jawn/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
"pg-promise": "^11.6.0",
"posthog-node": "^4.0.1",
"rate-limit-redis": "^4.2.0",
"stripe": "^16.12.0",
"swagger-ui-express": "^5.0.0",
"tiktoken": "^1.0.15",
"typescript": "^5.2.2",
Expand Down
16 changes: 15 additions & 1 deletion worker/src/lib/dbLogger/DBLoggable.ts
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,7 @@ interface DBLoggableRequestFromAsyncLogModelProps {
providerRequestHeaders: HeliconeHeaders;
providerResponseHeaders: Headers;
provider: Provider;
heliconeTemplate?: TemplateWithInputs;
}

function getResponseBodyFromJSON(json: Record<string, Json>): {
Expand Down Expand Up @@ -145,12 +146,24 @@ export async function dbLoggableRequestFromAsyncLogModel(
providerRequestHeaders,
providerResponseHeaders,
provider,
heliconeTemplate,
} = props;

return new DBLoggable({
request: {
requestId: providerRequestHeaders.requestId ?? crypto.randomUUID(),
promptSettings: requestWrapper.promptSettings,
promptSettings: providerRequestHeaders.promptHeaders?.promptId
? {
promptId: providerRequestHeaders.promptHeaders.promptId,
promptVersion:
providerRequestHeaders.promptHeaders.promptVersion ?? "",
promptMode: "production",
}
: {
promptId: undefined,
promptVersion: "",
promptMode: "deactivated",
},
userId: providerRequestHeaders.userId ?? undefined,
startTime: new Date(
asyncLogModel.timing.startTime.seconds * 1000 +
Expand All @@ -169,6 +182,7 @@ export async function dbLoggableRequestFromAsyncLogModel(
flaggedForModeration: null,
request_ip: null,
country_code: (requestWrapper.cf?.country as string) ?? null,
heliconeTemplate: heliconeTemplate ?? undefined,
},
response: {
responseId: crypto.randomUUID(),
Expand Down
13 changes: 13 additions & 0 deletions worker/src/lib/managers/AsyncLogManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ import { DBQueryTimer } from "../util/loggers/DBQueryTimer";
import { S3Client } from "../clients/S3Client";
import { RequestResponseManager } from "./RequestResponseManager";
import { KafkaProducer } from "../clients/KafkaProducer";
import { parseJSXObject } from "@helicone/prompts";
import { TemplateWithInputs } from "@helicone/prompts/dist/objectParser";

function mergeHeaders(x: Headers, y: Headers) {
const merged = new Headers();
Expand Down Expand Up @@ -51,13 +53,24 @@ export async function logAsync(
mergeHeaders(requestHeaders, requestWrapper.headers)
);

let templateWithInputs: TemplateWithInputs | undefined;
try {
if (requestWrapper.heliconeHeaders.promptHeaders.promptId) {
const parseResult = parseJSXObject(asyncLogModel.providerRequest.json);
templateWithInputs = parseResult?.templateWithInputs;
}
} catch (e) {
console.error("Error parsing prompt:", e);
}

const loggable = await dbLoggableRequestFromAsyncLogModel({
requestWrapper,
env,
asyncLogModel,
providerRequestHeaders: heliconeHeaders,
providerResponseHeaders: responseHeaders,
provider: provider,
heliconeTemplate: templateWithInputs,
});

const { data: auth, error: authError } = await requestWrapper.auth();
Expand Down

0 comments on commit c5e5fe1

Please sign in to comment.