0.19.0 • Published 2 years ago
@xrpl/ai-core v0.19.0
@xrpl/ai-core
@xrpl/ai-core is the core library for XRPL AI, a conversational AI component for your website, trained on your data.
It contains core functionality for XRPL AI and allows you to build abstractions on top of it.
Installation
npm install @xrpl/ai-coreIn browsers with esm.sh:
<script type="module">
import {
submitChat,
submitSearchQuery,
submitFeedback,
} from 'https://esm.sh/@markprompt/core';
</script>Usage
import { submitChat } from '@xrpl/ai-core';
// User input
const prompt = 'What is XRPL AI?';
// Can be obtained in your project settings on markprompt.com
const projectKey = 'YOUR-PROJECT-KEY';
// Called when a new answer chunk is available
// Should be concatenated to previous chunks
function onAnswerChunk(chunk) {
// Process an answer chunk
}
// Called when references are available
function onReferences(references) {
// Process references
}
function onConversationId(conversationId) {
// Store conversationId for future use
}
function onPromptId(promptId) {
// Store promptId for future use
}
// Called when submitChat encounters an error
function onError(error) {
// Handle errors
}
// Optional parameters, defaults displayed
const options = {
model: 'gpt-3.5-turbo', // Supports all OpenAI models
iDontKnowMessage: 'Sorry, I am not sure how to answer that.',
apiUrl: 'https://api.ai.xrpl.org/v1/completions', // Or your own completions API endpoint
};
await submitChat(
[{ content: prompt, role: 'user' }],
projectKey,
onAnswerChunk,
onReferences,
onConversationId,
onPromptId,
onError,
options,
);API
submitChat(messages: ChatMessage[], projectKey: string, onAnswerChunk, onReferences, onConversationId, onPromptId, onError, options?)
Submit a prompt to the XRPL AI Completions API.
Arguments
messages(ChatMessage[]): Chat messages to submit to the modelprojectKey(string): Project key for the projectonAnswerChunk(function(chunk: string)): Answers come in via streaming. This function is called when a new chunk arrives. Chunks should be concatenated to previous chunks of the same answer response.onReferences(function(references: FileSectionReference[])): This function is called when receiving the list of references from which the response was created.onConversationId(function(conversationId: string)): This function is called with the conversation ID returned by the API. Used to keep track of conversations.onPromptId(function(promptId: string)): This function is called with the prompt ID returned by the API. Used to submit feedback.onError(function): called when an error occursoptions(SubmitChatOptions): Optional parameters
Options
All options are optional.
apiUrl(string): URL at which to fetch completionsconversationId(string): Conversation IDiDontKnowMessage(string): Message returned when the model does not have an answermodel(OpenAIModelId): The OpenAI model to usesystemPrompt(string): The prompt templatetemperature(number): The model temperaturetopP(number): The model top PfrequencyPenalty(number): The model frequency penaltypresencePenalty(number): The model present penaltymaxTokens(number): The max number of tokens to include in the responsesectionsMatchCount(number): The number of sections to include in the prompt contextsectionsMatchThreshold(number): The similarity threshold between the input question and selected sectionssignal(AbortSignal): AbortController signal
Returns
A promise that resolves when the response is fully handled.
submitSearchQuery(query, projectKey, options?)
Submit a search query to the Markprompt Search API.
Arguments
query(string): Search queryprojectKey(string): Project key for the projectoptions(object): Optional parameters
Options
apiUrl(string): URL at which to fetch search resultslimit(number): Maximum amount of results to returnsignal(AbortSignal): AbortController signal
Returns
A list of search results.
submitFeedback(feedback, projectKey, options?)
Submit feedback to the Markprompt Feedback API about a specific prompt.
Arguments
feedback(object): Feedback to submitfeedback.feedback(object): Feedback datafeedback.feedback.vote("1" | "-1"): Votefeedback.promptId(string): Prompt IDprojectKey(string): Project key for the projectoptions(object): Optional parametersoptions.apiUrl(string): URL at which to post feedbackoptions.onFeedbackSubmitted(function): Callback function when feedback is submittedoptions.signal(AbortSignal): AbortController signal
Returns
A promise that resolves when the feedback is submitted. Has no return value.
License
MIT © XRPL AI Devs