Skip to content

Commit bab7c35

Browse files
WauplinSBrandeis
andauthored
Stronger typing for convo messages (#493)
following #457 (comment) cc @mishig25 --------- Co-authored-by: Simon Brandeis <[email protected]>
1 parent a580e9f commit bab7c35

File tree

3 files changed

+10
-12
lines changed

3 files changed

+10
-12
lines changed

packages/widgets/src/lib/components/InferenceWidget/shared/WidgetOutputConvo/WidgetOutputConvo.svelte

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,11 @@
22
import { afterUpdate } from "svelte";
33
44
import { isFullyScrolled, scrollToMax } from "../../../../utils/ViewUtils.js";
5+
import type { ConversationMessage } from "../../shared/types.js";
56
import WidgetOutputConvoBubble from "../WidgetOuputConvoBubble/WidgetOutputConvoBubble.svelte";
67
78
export let modelId: string;
8-
export let messages: Array<{
9-
role: string;
10-
content: string;
11-
}>;
9+
export let messages: ConversationMessage[];
1210
1311
let wrapperEl: HTMLElement;
1412

packages/widgets/src/lib/components/InferenceWidget/shared/types.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,3 +71,8 @@ export interface ImageSegment {
7171
imgData?: ImageData;
7272
bitmap?: ImageBitmap;
7373
}
74+
75+
export interface ConversationMessage {
76+
role: "user" | "assistant" | "system";
77+
content: string;
78+
}

packages/widgets/src/lib/components/InferenceWidget/widgets/ConversationalWidget/ConversationalWidget.svelte

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import { Template } from "@huggingface/jinja";
55
import type { SpecialTokensMap, TokenizerConfig, WidgetExampleTextInput } from "@huggingface/tasks";
66
import { SPECIAL_TOKENS_ATTRIBUTES } from "@huggingface/tasks";
7-
7+
import type { ConversationMessage } from "../../shared/types.js";
88
import WidgetOutputConvo from "../../shared/WidgetOutputConvo/WidgetOutputConvo.svelte";
99
import WidgetQuickInput from "../../shared/WidgetQuickInput/WidgetQuickInput.svelte";
1010
import WidgetWrapper from "../../shared/WidgetWrapper/WidgetWrapper.svelte";
@@ -22,13 +22,8 @@
2222
2323
$: isDisabled = $widgetStates?.[model.id]?.isDisabled;
2424
25-
interface Message {
26-
role: string;
27-
content: string;
28-
}
29-
3025
let computeTime = "";
31-
let messages: Message[] = [];
26+
let messages: ConversationMessage[] = [];
3227
let error: string = "";
3328
let isLoading = false;
3429
let modelLoading = {
@@ -150,7 +145,7 @@
150145
}
151146
}
152147
153-
function parseOutput(body: unknown, chat: Message[]): Message[] {
148+
function parseOutput(body: unknown, chat: ConversationMessage[]): ConversationMessage[] {
154149
if (Array.isArray(body) && body.length) {
155150
const text = body[0]?.generated_text ?? "";
156151

0 commit comments

Comments
 (0)