aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/client/cognitive_services/CognitiveServices.ts50
-rw-r--r--src/client/views/nodes/ImageBox.tsx13
-rw-r--r--src/server/index.ts3
3 files changed, 64 insertions, 2 deletions
diff --git a/src/client/cognitive_services/CognitiveServices.ts b/src/client/cognitive_services/CognitiveServices.ts
index c118d91d3..8aac20084 100644
--- a/src/client/cognitive_services/CognitiveServices.ts
+++ b/src/client/cognitive_services/CognitiveServices.ts
@@ -19,7 +19,8 @@ export type Rectangle = { top: number, left: number, width: number, height: numb
export enum Service {
ComputerVision = "vision",
Face = "face",
- Handwriting = "handwriting"
+ Handwriting = "handwriting",
+ Text = "text"
}
export enum Confidence {
@@ -211,4 +212,51 @@ export namespace CognitiveServices {
}
+ export namespace Text {
+ export const Manager: APIManager<string> = {
+ converter: (data: string) => {
+ return JSON.stringify({
+ documents: [{
+ id: 1,
+ language: "en",
+ text: data
+ }]
+ });
+ },
+ requester: async (apiKey: string, body: string, service: Service) => {
+ let serverAddress = "https://eastus.api.cognitive.microsoft.com";
+ let endpoint = serverAddress + "/text/analytics/v2.1/keyPhrases";
+ let sampleBody = {
+ "documents": [
+ {
+ "language": "en",
+ "id": 1,
+ "text": "Hello world. This is some input text that I love."
+ }
+ ]
+ };
+ let actualBody = body;
+ const options = {
+ uri: endpoint,
+ body: actualBody,
+ headers: {
+ 'Content-Type': 'application/json',
+ 'Ocp-Apim-Subscription-Key': apiKey
+ }
+
+ };
+ console.log("requested!");
+ return request.post(options);
+ },
+ analyzer: async (target: Doc, keys: string[], data: string, converter: Converter) => {
+ let results = await ExecuteQuery<string, any>(Service.Text, Manager, data);
+ console.log(results);
+ converter(results);
+ //target[keys[0]] = Docs.Get.DocumentHierarchyFromJson(results, "Key Word Analysis");
+ console.log("analyzed!");
+ return null;
+ }
+ };
+ }
+
} \ No newline at end of file
diff --git a/src/client/views/nodes/ImageBox.tsx b/src/client/views/nodes/ImageBox.tsx
index 9a0615d68..c12fae8e9 100644
--- a/src/client/views/nodes/ImageBox.tsx
+++ b/src/client/views/nodes/ImageBox.tsx
@@ -225,6 +225,7 @@ export class ImageBox extends DocComponent<FieldViewProps, ImageDocument>(ImageD
let modes: ContextMenuProps[] = [];
modes.push({ description: "Generate Tags", event: this.generateMetadata, icon: "tag" });
modes.push({ description: "Find Faces", event: this.extractFaces, icon: "camera" });
+ modes.push({ description: "Recommend", event: this.extractText, icon: "brain" });
ContextMenu.Instance.addItem({ description: "Image Funcs...", subitems: funcs, icon: "asterisk" });
ContextMenu.Instance.addItem({ description: "Analyze...", subitems: modes, icon: "eye" });
@@ -240,6 +241,18 @@ export class ImageBox extends DocComponent<FieldViewProps, ImageDocument>(ImageD
CognitiveServices.Image.Manager.analyzer(this.extensionDoc, ["faces"], this.url, Service.Face, converter);
}
+ extractText = () => {
+ let data = StrCast(this.dataDoc.title);
+ console.log(data);
+ let converter = (results: any) => {
+ results.documents.forEach((doc: any) => {
+ console.log(doc.keyPhrases);
+ });
+ return new Doc();
+ };
+ CognitiveServices.Text.Manager.analyzer(this.extensionDoc, ["key words", "key word strings"], data, converter);
+ }
+
generateMetadata = (threshold: Confidence = Confidence.Excellent) => {
let converter = (results: any) => {
let tagDoc = new Doc;
diff --git a/src/server/index.ts b/src/server/index.ts
index 10a84c823..3b74632fc 100644
--- a/src/server/index.ts
+++ b/src/server/index.ts
@@ -487,7 +487,8 @@ addSecureRoute(
const ServicesApiKeyMap = new Map<string, string | undefined>([
["face", process.env.FACE],
["vision", process.env.VISION],
- ["handwriting", process.env.HANDWRITING]
+ ["handwriting", process.env.HANDWRITING],
+ ["text", process.env.TEXT]
]);
addSecureRoute(Method.GET, (user, res, req) => {