Spaces:
Runtime error
Runtime error
Commit
·
1a43738
1
Parent(s):
e40b300
error handling
Browse files- src/components/game-component.tsx +19 -3
- src/lib/inference.tsx +10 -3
src/components/game-component.tsx
CHANGED
|
@@ -65,7 +65,7 @@ const Switch = ({
|
|
| 65 |
};
|
| 66 |
|
| 67 |
type Message = {
|
| 68 |
-
role: "user" | "assistant" | "game" | "result";
|
| 69 |
content: string;
|
| 70 |
metadata?: {
|
| 71 |
page?: string;
|
|
@@ -145,7 +145,7 @@ export default function GameComponent({
|
|
| 145 |
const {
|
| 146 |
status: modelStatus,
|
| 147 |
partialText,
|
| 148 |
-
inference
|
| 149 |
} = useInference({
|
| 150 |
apiKey:
|
| 151 |
window.localStorage.getItem("huggingface_access_token") || undefined,
|
|
@@ -228,12 +228,22 @@ export default function GameComponent({
|
|
| 228 |
content: prompt,
|
| 229 |
});
|
| 230 |
|
| 231 |
-
const modelResponse = await inference({
|
| 232 |
model: model,
|
| 233 |
prompt,
|
| 234 |
maxTokens: maxTokens,
|
| 235 |
});
|
| 236 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 237 |
pushConvo({
|
| 238 |
role: "assistant",
|
| 239 |
content: modelResponse,
|
|
@@ -703,6 +713,12 @@ export default function GameComponent({
|
|
| 703 |
</div>
|
| 704 |
</div>
|
| 705 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 706 |
}
|
| 707 |
|
| 708 |
return null;
|
|
|
|
| 65 |
};
|
| 66 |
|
| 67 |
type Message = {
|
| 68 |
+
role: "user" | "assistant" | "game" | "result" | "error";
|
| 69 |
content: string;
|
| 70 |
metadata?: {
|
| 71 |
page?: string;
|
|
|
|
| 145 |
const {
|
| 146 |
status: modelStatus,
|
| 147 |
partialText,
|
| 148 |
+
inference
|
| 149 |
} = useInference({
|
| 150 |
apiKey:
|
| 151 |
window.localStorage.getItem("huggingface_access_token") || undefined,
|
|
|
|
| 228 |
content: prompt,
|
| 229 |
});
|
| 230 |
|
| 231 |
+
const {status, result: modelResponse} = await inference({
|
| 232 |
model: model,
|
| 233 |
prompt,
|
| 234 |
maxTokens: maxTokens,
|
| 235 |
});
|
| 236 |
|
| 237 |
+
if (status === "error") {
|
| 238 |
+
pushConvo({
|
| 239 |
+
role: "error",
|
| 240 |
+
content: "Error during inference: " + modelResponse,
|
| 241 |
+
});
|
| 242 |
+
|
| 243 |
+
setAutoRunning(false);
|
| 244 |
+
return;
|
| 245 |
+
}
|
| 246 |
+
|
| 247 |
pushConvo({
|
| 248 |
role: "assistant",
|
| 249 |
content: modelResponse,
|
|
|
|
| 713 |
</div>
|
| 714 |
</div>
|
| 715 |
);
|
| 716 |
+
} else if (message.role === "error") {
|
| 717 |
+
return (
|
| 718 |
+
<div className="p-2 rounded-lg bg-red-50 border border-red-100 text-xs">
|
| 719 |
+
<p>{message.content}</p>
|
| 720 |
+
</div>
|
| 721 |
+
);
|
| 722 |
}
|
| 723 |
|
| 724 |
return null;
|
src/lib/inference.tsx
CHANGED
|
@@ -98,19 +98,26 @@ export function useInference({ apiKey }) {
|
|
| 98 |
prompt,
|
| 99 |
model,
|
| 100 |
maxTokens,
|
|
|
|
| 101 |
}: {
|
| 102 |
prompt: string;
|
| 103 |
model: string;
|
| 104 |
maxTokens: number;
|
|
|
|
| 105 |
}) => {
|
| 106 |
setIsLoading(true);
|
| 107 |
setPartialText("");
|
| 108 |
|
| 109 |
const client = new InferenceClient(apiKey);
|
| 110 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 111 |
try {
|
| 112 |
const stream = client.chatCompletionStream({
|
| 113 |
-
provider
|
| 114 |
model,
|
| 115 |
maxTokens,
|
| 116 |
messages: [
|
|
@@ -132,12 +139,12 @@ export function useInference({ apiKey }) {
|
|
| 132 |
|
| 133 |
setInferenceResult(result);
|
| 134 |
|
| 135 |
-
return result;
|
| 136 |
} catch (error) {
|
| 137 |
console.error("Error in inference", error);
|
| 138 |
setError(error.message);
|
| 139 |
setIsLoading(false);
|
| 140 |
-
return
|
| 141 |
}
|
| 142 |
};
|
| 143 |
|
|
|
|
| 98 |
prompt,
|
| 99 |
model,
|
| 100 |
maxTokens,
|
| 101 |
+
provider = "fireworks-ai",
|
| 102 |
}: {
|
| 103 |
prompt: string;
|
| 104 |
model: string;
|
| 105 |
maxTokens: number;
|
| 106 |
+
provider: string;
|
| 107 |
}) => {
|
| 108 |
setIsLoading(true);
|
| 109 |
setPartialText("");
|
| 110 |
|
| 111 |
const client = new InferenceClient(apiKey);
|
| 112 |
|
| 113 |
+
// fireworks doesnt support max tokens
|
| 114 |
+
if (provider === "fireworks-ai") {
|
| 115 |
+
maxTokens = undefined;
|
| 116 |
+
}
|
| 117 |
+
|
| 118 |
try {
|
| 119 |
const stream = client.chatCompletionStream({
|
| 120 |
+
// provider,
|
| 121 |
model,
|
| 122 |
maxTokens,
|
| 123 |
messages: [
|
|
|
|
| 139 |
|
| 140 |
setInferenceResult(result);
|
| 141 |
|
| 142 |
+
return {status: "success", result};
|
| 143 |
} catch (error) {
|
| 144 |
console.error("Error in inference", error);
|
| 145 |
setError(error.message);
|
| 146 |
setIsLoading(false);
|
| 147 |
+
return {status: "error", result: error.message};
|
| 148 |
}
|
| 149 |
};
|
| 150 |
|