improve: prompt for NLP result

This commit is contained in:
Alikia2x 2024-04-26 22:43:47 +08:00
parent 86d4015ae5
commit 38b144a6f4
4 changed files with 14 additions and 2 deletions

View File

@ -135,6 +135,9 @@ export default function () {
} else if (s.type === "text") {
return (
<PlainText key={i} selected={i == selected}>
{s.prompt && (
<span className="text-zinc-700 dark:text-zinc-400">{s.prompt}</span>
)}
<p>{s.suggestion}</p>
{devMode && (
<span className="text-zinc-700 dark:text-zinc-400 text-sm">

6
global.d.ts vendored
View File

@ -23,5 +23,9 @@ type suggestionItem = {
suggestion: string,
type: string,
relativeRelevance?: number,
relevance: number
relevance: number,
prompt?: string | React.ReactElement,
intention?: string | null,
probability?: number,
confidence?: number,
}

View File

@ -7,6 +7,7 @@ export class NLPResult {
public relevanceBase: number = 2000,
public confidenceWeight: number = 0.2,
public type: string = "text",
public prompt?: string | React.ReactElement
) {
}

View File

@ -1,5 +1,6 @@
import removeStopwords from "../nlp/stopwords";
import { NLPResult } from "./NLPResult";
import {Kbd} from "@nextui-org/react";
interface KeywordsDict {
[key: string]: number;
@ -44,7 +45,7 @@ export function base64NLP(str: string) {
}
}
let processedQuery = "";
let processedQuery = str;
if (result.intention==="base64.encode"){
processedQuery = removeStopwords(str, Object.keys(keywords).concat(Object.keys(intentions)), true).trim();
} else if (result.intention==="base64.decode") {
@ -58,6 +59,7 @@ export function base64NLP(str: string) {
}
}
else if (validBase64(processedQuery) && result.intention !== "base64.encode") {
console.log("!!");
result.intention = "base64.decode";
result.confidence += Math.max(1 / Math.log10(1 / processedQuery.length) + 1, 0);
result.probability += Math.max(1 / Math.log10(1 / processedQuery.length) + 1, 0);
@ -66,10 +68,12 @@ export function base64NLP(str: string) {
switch (result.intention) {
case "base64.encode":
result.suggestion = btoa(processedQuery);
result.prompt = <span>Base64 Encode (Hit <Kbd keys={["enter"]}></Kbd> to copy):</span>;
break;
case "base64.decode":
if (result.confidence > 0.1)
result.suggestion = atob(processedQuery);
result.prompt = <span>Base64 Decode (Hit <Kbd keys={["enter"]}></Kbd> to copy):</span>;
break;
default:
break;