Sanity JavaScript OpenAI SDK
This client is a thin wrapper for the OpeanAI API. A way to easely enchance your studio with ready to use GPT functions
🚀 Usage
Install
yarn add @focus-reactive/sanity-ai-sdk
How to use it
Initialisation
import { initSDK } from "@focus-reactive/content-ai-sdk";
import { SanityClient } from "sanity";
interface IConfig {
client: SanityClient;
openAiKey: string;
}
const config: IConfig = {
client: new SanityClient(),
openAiKey: YOUR_OPENAI_KEY,
};
initSDK(config);
Documentation
Translations
We implemented several features that you can use in your projects to work with localisations.
Function transalateSelectedDocumentFields
Parameters
interface TranslateSelectedDocumentFieldsProps {
fieldNames: string[];
documentId: string;
targetLanguage: string;
newDocumentConfig?: NewDocumentprops;
}
interface NewDocumentprops {
titleFieldName: string;
additionalFields?: Record<string, unknown>;
}
fieldNames
- Array of field names that should be translated. Should match the document schema. Can with any type of content (string, JSON, etc.)documentId
- Id of the document that we need to process.targetLanguage
- Language to which we need to translate the content.newDocumentConfig
- Optional. If you want to create a new document with the translated content, you can pass the config here.titleFieldName
- Field that should be used to create a new document title based on it's value.additionalFields
- Optional. Additional fields that should be added to the new document.
Usage
import { transalateSelectedDocumentFields } from "@focus-reactive/sanity-ai-sdk";
const translatedFileds = await transalateSelectedDocumentFields({
fieldNames: ["movieTitle", "description", "actors"],
targetLanguage: "german",
documentId: DOCUMENT_ID,
});
Function translateFullDocument
Parameters
interface TranslateFullDocumentProps {
documentId: string;
targetLanguage: string;
}
documentId
- Id of the document that we need to process.targetLanguage
- Language to which we need to translate the content.
Usage
import { translateFullDocument } from "@focus-reactive/sanity-ai-sdk";
const translatedDocument = await translateFullDocument({
targetLanguage: "german",
documentId: DOCUMENT_ID,
});
Categorisation
Function findRelevantTags
Parameters
interface FindRelevantTagsProps {
documentId: string;
tags: Tag[];
contentTitle: string;
}
interface Tag {
id: string;
title: string;
description?: string;
}
documentId
- Id of the document that we need to process.tags
- Array of tags that should be used to categorise the document.contentTitle
- Title of the document that should be used to set a logical context.
Usage
import { findRelevantTags } from "@focus-reactive/sanity-ai-sdk";
const result = await findRelevantTags({
documentId: "documentId",
contentTitle: "Batman movie",
tags: [],
});
Summarisation
Function summariseDocument
Parameters
interface SummariseDocumentProps {
documentId: string;
contentTitle: string;
promptModifier?: string;
}
documentId
- Id of the document that we need to process.tags
- Array of tags that should be used to categorise the document.promptModifier
- Optional. If you want to a modifier to the prompt, you can pass the modifier here.
Usage
import { summariseDocument } from "@focus-reactive/sanity-ai-sdk";
const result = await summariseDocument({
documentId: "documentId",
contentTitle: "Batman movie",
});