Comparing version 0.1.48 to 0.1.49
@@ -6,5 +6,7 @@ /// <reference types="node" /> | ||
import { Memory } from "./memory"; | ||
import { LoaderFunction } from "./dataloader"; | ||
export type Exclusive<T, U> = (T & Partial<Record<Exclude<keyof U, keyof T>, never>>) | (U & Partial<Record<Exclude<keyof T, keyof U>, never>>); | ||
export type ExclusiveN<T extends Record<string, unknown>[]> = T extends [infer F, ...infer Rest] ? F extends Record<string, unknown> ? Exclusive<F, ExclusiveN<Extract<Rest, Record<string, unknown>[]>>> : never : unknown; | ||
export type AndN<T extends Record<string, unknown>[]> = T extends [infer F, ...infer Rest] ? F extends Record<string, unknown> ? Partial<F> & AndN<Extract<Rest, Record<string, unknown>[]>> : never : unknown; | ||
export type Language = "english" | "french" | "spanish" | "german" | "italian" | "portuguese" | "russian" | "mandarin" | "japanese" | "arabic" | "hindi" | "bengali" | "punjabi" | "javanese" | "swahili" | "korean" | "turkish" | "vietnamese" | "telugu" | "marathi" | ""; | ||
export type GenerationSimpleOptions = { | ||
@@ -16,2 +18,3 @@ provider?: "openai" | "cohere" | "llama" | ""; | ||
infos?: boolean; | ||
language?: Language; | ||
}; | ||
@@ -21,7 +24,14 @@ export type ChatOptions = [{ | ||
}, {}]; | ||
export type MemoryOptions = [{ | ||
memoryId: string; | ||
}, { | ||
memory: Memory; | ||
}, {}]; | ||
export type MemoryOptions = [ | ||
{ | ||
memoryId: string; | ||
}, | ||
{ | ||
memory: Memory; | ||
}, | ||
{ | ||
data: [LoaderFunction] | LoaderFunction; | ||
}, | ||
{} | ||
]; | ||
export type SystemPromptOptions = [{ | ||
@@ -28,0 +38,0 @@ systemPromptId: UUID; |
@@ -37,2 +37,3 @@ "use strict"; | ||
const error_1 = require("./helpers/error"); | ||
const dataloader_1 = require("./dataloader"); | ||
const PartialResultType = t.partial({ | ||
@@ -79,2 +80,6 @@ ressources: t.array(t.type({ id: t.string, content: t.string, similarity: t.number })), | ||
const genOptions = options; | ||
let dataMemory; | ||
if (genOptions.data) { | ||
dataMemory = await (0, dataloader_1.loaderToMemory)(genOptions.data, clientOptions).then((memory) => memory.memoryId); | ||
} | ||
const requestBody = { | ||
@@ -84,3 +89,3 @@ task, | ||
model: genOptions.model, | ||
memory_id: (await genOptions.memory?.memoryId) || genOptions.memoryId, | ||
memory_id: dataMemory || (await genOptions.memory?.memoryId) || genOptions.memoryId, | ||
stop: genOptions.stop || [], | ||
@@ -92,3 +97,5 @@ infos: genOptions.infos || false, | ||
web: genOptions.web, | ||
language: genOptions.language, | ||
}; | ||
console.log(requestBody); | ||
return generateRequest(requestBody, clientOptions); | ||
@@ -149,2 +156,6 @@ } | ||
const genOptions = options; | ||
let dataMemory; | ||
if (genOptions.data) { | ||
dataMemory = await (0, dataloader_1.loaderToMemory)(genOptions.data, clientOptions).then((memory) => memory.memoryId); | ||
} | ||
const requestBody = { | ||
@@ -154,3 +165,3 @@ task, | ||
model: genOptions.model, | ||
memory_id: (await genOptions.memory?.memoryId) || genOptions.memoryId, | ||
memory_id: dataMemory || (await genOptions.memory?.memoryId) || genOptions.memoryId, | ||
stop: genOptions.stop || [], | ||
@@ -162,2 +173,3 @@ infos: genOptions.infos || false, | ||
web: genOptions.web, | ||
language: genOptions.language, | ||
}; | ||
@@ -164,0 +176,0 @@ const { token, endpoint } = await (0, clientOpts_1.defaultOptions)(clientOptions); |
@@ -14,4 +14,6 @@ import * as t from "polyfact-io-ts"; | ||
import { generateImage } from "./image"; | ||
import { TextFileLoader, StringLoader, AudioLoader } from "./dataloader"; | ||
import { getAllPrompts, getPromptById, getPromptByName, createPrompt, updatePrompt, deletePrompt } from "./prompt"; | ||
export type { PromptInsert, PromptUpdate, Prompt, FilterOperation, Filter } from "./prompt"; | ||
export type { LoaderFunction } from "./dataloader"; | ||
export type { TokenUsage, Ressource, GenerationResult } from "./generate"; | ||
@@ -23,3 +25,3 @@ export * from "./helpers/models"; | ||
}; | ||
export { generate, generateWithTokenUsage, generateWithType, generateWithTypeWithTokenUsage, splitString, tokenCount, t, GenerationOptions, transcribe, createMemory, updateMemory, getAllMemories, Chat, Memory, kv, usage, usePolyfact, useChat, PolyfactClientBuilder, generateImage, getAllPrompts, getPromptById, getPromptByName, createPrompt, updatePrompt, deletePrompt, }; | ||
export { generate, generateWithTokenUsage, generateWithType, generateWithTypeWithTokenUsage, GenerationOptions, Chat, transcribe, createMemory, updateMemory, getAllMemories, Memory, PolyfactClientBuilder, usage, splitString, tokenCount, t, kv, usePolyfact, useChat, generateImage, getAllPrompts, getPromptById, getPromptByName, createPrompt, updatePrompt, deletePrompt, TextFileLoader, StringLoader, AudioLoader, }; | ||
export default Polyfact; |
@@ -32,3 +32,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.deletePrompt = exports.updatePrompt = exports.createPrompt = exports.getPromptByName = exports.getPromptById = exports.getAllPrompts = exports.generateImage = exports.PolyfactClientBuilder = exports.useChat = exports.usePolyfact = exports.usage = exports.kv = exports.Memory = exports.Chat = exports.getAllMemories = exports.updateMemory = exports.createMemory = exports.transcribe = exports.t = exports.tokenCount = exports.splitString = exports.generateWithTypeWithTokenUsage = exports.generateWithType = exports.generateWithTokenUsage = exports.generate = void 0; | ||
exports.AudioLoader = exports.StringLoader = exports.TextFileLoader = exports.deletePrompt = exports.updatePrompt = exports.createPrompt = exports.getPromptByName = exports.getPromptById = exports.getAllPrompts = exports.generateImage = exports.useChat = exports.usePolyfact = exports.kv = exports.t = exports.tokenCount = exports.splitString = exports.usage = exports.PolyfactClientBuilder = exports.Memory = exports.getAllMemories = exports.updateMemory = exports.createMemory = exports.transcribe = exports.Chat = exports.generateWithTypeWithTokenUsage = exports.generateWithType = exports.generateWithTokenUsage = exports.generate = void 0; | ||
const t = __importStar(require("polyfact-io-ts")); | ||
@@ -65,2 +65,6 @@ exports.t = t; | ||
Object.defineProperty(exports, "generateImage", { enumerable: true, get: function () { return image_1.generateImage; } }); | ||
const dataloader_1 = require("./dataloader"); | ||
Object.defineProperty(exports, "TextFileLoader", { enumerable: true, get: function () { return dataloader_1.TextFileLoader; } }); | ||
Object.defineProperty(exports, "StringLoader", { enumerable: true, get: function () { return dataloader_1.StringLoader; } }); | ||
Object.defineProperty(exports, "AudioLoader", { enumerable: true, get: function () { return dataloader_1.AudioLoader; } }); | ||
const prompt_1 = require("./prompt"); | ||
@@ -67,0 +71,0 @@ Object.defineProperty(exports, "getAllPrompts", { enumerable: true, get: function () { return prompt_1.getAllPrompts; } }); |
import { InputClientOptions } from "./clientOpts"; | ||
declare function createMemory(clientOptions?: InputClientOptions): Promise<{ | ||
declare function createMemory(clientOptions?: InputClientOptions, isPublic?: boolean): Promise<{ | ||
id: string; | ||
@@ -17,3 +17,3 @@ }>; | ||
clientOptions: InputClientOptions; | ||
constructor(clientOptions?: InputClientOptions); | ||
constructor(clientOptions?: InputClientOptions, isPublic?: boolean); | ||
add(input: string, { maxToken }?: MemoryAddOptions): Promise<void>; | ||
@@ -23,3 +23,3 @@ } | ||
export type MemoryClient = { | ||
createMemory: () => Promise<{ | ||
createMemory: (isPublic: true) => Promise<{ | ||
id: string; | ||
@@ -26,0 +26,0 @@ }>; |
@@ -30,6 +30,8 @@ "use strict"; | ||
const error_1 = require("./helpers/error"); | ||
async function createMemory(clientOptions = {}) { | ||
async function createMemory(clientOptions = {}, isPublic = true) { | ||
const { token, endpoint } = await (0, clientOpts_1.defaultOptions)(clientOptions); | ||
try { | ||
const res = await axios_1.default.post(`${endpoint}/memory`, {}, { | ||
const res = await axios_1.default.post(`${endpoint}/memory`, { | ||
public: isPublic, | ||
}, { | ||
headers: { | ||
@@ -66,2 +68,3 @@ "Content-Type": "application/json", | ||
catch (e) { | ||
console.log(e); | ||
if (e instanceof axios_1.AxiosError) { | ||
@@ -94,5 +97,7 @@ throw new error_1.ApiError(e?.response?.data); | ||
class Memory { | ||
constructor(clientOptions = {}) { | ||
constructor(clientOptions = {}, isPublic = true) { | ||
this.clientOptions = (0, clientOpts_1.defaultOptions)(clientOptions); | ||
this.memoryId = this.clientOptions.then((co) => createMemory(co)).then((res) => res.id); | ||
this.memoryId = this.clientOptions | ||
.then((co) => createMemory(co, isPublic)) | ||
.then((res) => res.id); | ||
} | ||
@@ -99,0 +104,0 @@ async add(input, { maxToken = 0 } = {}) { |
import { Memory, generate } from "../lib/index"; | ||
(async () => { | ||
// const memory = new Memory(); | ||
const memory = new Memory({}, true); | ||
@@ -6,0 +6,0 @@ // memory.add("The secret word is: banana42"); |
import { createMemory, updateMemory, getAllMemories, generate } from "../lib/index"; | ||
const clientOptions = { | ||
endpoint: "https://api2.polyfact.com", | ||
token: "<YOUR_POLYFACT_TOKEN>", | ||
}; | ||
(async () => { | ||
const memory = await createMemory(); | ||
const memory = await createMemory(clientOptions, true); // Create a public memory (default) - false for private | ||
console.log("Created memory:", memory); | ||
const result = await updateMemory(memory.id, "<input-data> is here", 0); | ||
const result = await updateMemory(memory.id, "Put here what you want to memorize", 0); | ||
console.log("Updated memory:", result); | ||
@@ -13,4 +18,8 @@ | ||
const result2 = await generate("<input-data>", { memoryId: memory.id, infos: true }); | ||
const result2 = await generate("Ask a question here about what you've memorized before", { | ||
memoryId: memory.id, | ||
infos: true, | ||
language: "french", // select the language of the response | ||
}); | ||
console.log("Generated:", result2); | ||
})(); |
import * as readline from "node:readline/promises"; | ||
import { stdin as input, stdout as output } from "node:process"; | ||
import { Chat } from "../lib/index"; | ||
const clientOptions = { | ||
endpoint: "https://api2.polyfact.com", | ||
token: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdXRoX2lkIjoiOGJlOWQwZWYtZGMyZi00ODQzLWE0MjctYmYwNDRlZmJkNTVlIiwidXNlcl9pZCI6IjhiZTlkMGVmLWRjMmYtNDg0My1hNDI3LWJmMDQ0ZWZiZDU1ZSJ9._PlQn_SZrE7AsKqxloyunXPlrWnORMBN5mC0ZRCuxVg", | ||
}; | ||
async function main() { | ||
const chat = new Chat({ | ||
autoMemory: true, | ||
provider: "openai", | ||
model: "gpt-3.5-turbo-16k", | ||
systemPromptId: "8fc39ca4-3941-40d9-824a-5ed283102f6e", // Holy Bible Prompt | ||
}); | ||
const chat = new Chat( | ||
{ | ||
autoMemory: true, | ||
provider: "openai", | ||
model: "gpt-3.5-turbo-16k", | ||
// systemPromptId: "8fc39ca4-3941-40d9-824a-5ed283102f6e", // Holy Bible Prompt | ||
}, | ||
clientOptions, | ||
); | ||
@@ -12,0 +19,0 @@ const rl = readline.createInterface({ input, output }); |
@@ -10,2 +10,3 @@ /* eslint-disable camelcase */ | ||
import { ApiError, ErrorData } from "./helpers/error"; | ||
import { loaderToMemory, LoaderFunction } from "./dataloader"; | ||
@@ -42,2 +43,25 @@ const PartialResultType = t.partial({ | ||
export type Language = | ||
| "english" | ||
| "french" | ||
| "spanish" | ||
| "german" | ||
| "italian" | ||
| "portuguese" | ||
| "russian" | ||
| "mandarin" | ||
| "japanese" | ||
| "arabic" | ||
| "hindi" | ||
| "bengali" | ||
| "punjabi" | ||
| "javanese" | ||
| "swahili" | ||
| "korean" | ||
| "turkish" | ||
| "vietnamese" | ||
| "telugu" | ||
| "marathi" | ||
| ""; | ||
export type GenerationSimpleOptions = { | ||
@@ -49,2 +73,3 @@ provider?: "openai" | "cohere" | "llama" | ""; | ||
infos?: boolean; | ||
language?: Language; | ||
}; | ||
@@ -54,3 +79,8 @@ | ||
export type MemoryOptions = [{ memoryId: string }, { memory: Memory }, {}]; | ||
export type MemoryOptions = [ | ||
{ memoryId: string }, | ||
{ memory: Memory }, | ||
{ data: [LoaderFunction] | LoaderFunction }, | ||
{}, | ||
]; | ||
@@ -134,2 +164,9 @@ export type SystemPromptOptions = [{ systemPromptId: UUID }, { systemPrompt: string }, {}]; | ||
let dataMemory; | ||
if (genOptions.data) { | ||
dataMemory = await loaderToMemory(genOptions.data, clientOptions).then( | ||
(memory) => memory.memoryId, | ||
); | ||
} | ||
const requestBody = { | ||
@@ -139,3 +176,3 @@ task, | ||
model: genOptions.model, | ||
memory_id: (await genOptions.memory?.memoryId) || genOptions.memoryId, | ||
memory_id: dataMemory || (await genOptions.memory?.memoryId) || genOptions.memoryId, | ||
stop: genOptions.stop || [], | ||
@@ -147,4 +184,7 @@ infos: genOptions.infos || false, | ||
web: genOptions.web, | ||
language: genOptions.language, | ||
}; | ||
console.log(requestBody); | ||
return generateRequest(requestBody, clientOptions); | ||
@@ -222,2 +262,9 @@ } | ||
let dataMemory; | ||
if (genOptions.data) { | ||
dataMemory = await loaderToMemory(genOptions.data, clientOptions).then( | ||
(memory) => memory.memoryId, | ||
); | ||
} | ||
const requestBody = { | ||
@@ -227,3 +274,3 @@ task, | ||
model: genOptions.model, | ||
memory_id: (await genOptions.memory?.memoryId) || genOptions.memoryId, | ||
memory_id: dataMemory || (await genOptions.memory?.memoryId) || genOptions.memoryId, | ||
stop: genOptions.stop || [], | ||
@@ -235,2 +282,3 @@ infos: genOptions.infos || false, | ||
web: genOptions.web, | ||
language: genOptions.language, | ||
}; | ||
@@ -237,0 +285,0 @@ |
@@ -18,2 +18,3 @@ import * as t from "polyfact-io-ts"; | ||
import { generateImage } from "./image"; | ||
import { TextFileLoader, StringLoader, AudioLoader } from "./dataloader"; | ||
@@ -30,2 +31,3 @@ import { | ||
export type { PromptInsert, PromptUpdate, Prompt, FilterOperation, Filter } from "./prompt"; | ||
export type { LoaderFunction } from "./dataloader"; | ||
@@ -44,2 +46,3 @@ // Export types and models | ||
export { | ||
// text generation | ||
generate, | ||
@@ -49,18 +52,30 @@ generateWithTokenUsage, | ||
generateWithTypeWithTokenUsage, | ||
splitString, | ||
tokenCount, | ||
t, | ||
GenerationOptions, | ||
Chat, | ||
// transcription | ||
transcribe, | ||
// memory | ||
createMemory, | ||
updateMemory, | ||
getAllMemories, | ||
Chat, | ||
Memory, | ||
// utils | ||
PolyfactClientBuilder, | ||
usage, | ||
splitString, | ||
tokenCount, | ||
t, | ||
kv, | ||
usage, | ||
// hooks | ||
usePolyfact, | ||
useChat, | ||
PolyfactClientBuilder, | ||
// Image generation | ||
generateImage, | ||
// Prompts | ||
getAllPrompts, | ||
@@ -72,4 +87,9 @@ getPromptById, | ||
deletePrompt, | ||
// Loader | ||
TextFileLoader, | ||
StringLoader, | ||
AudioLoader, | ||
}; | ||
export default Polyfact; |
@@ -5,3 +5,6 @@ import axios, { AxiosError } from "axios"; | ||
async function createMemory(clientOptions: InputClientOptions = {}): Promise<{ id: string }> { | ||
async function createMemory( | ||
clientOptions: InputClientOptions = {}, | ||
isPublic = true, | ||
): Promise<{ id: string }> { | ||
const { token, endpoint } = await defaultOptions(clientOptions); | ||
@@ -12,4 +15,6 @@ | ||
`${endpoint}/memory`, | ||
{}, | ||
{ | ||
public: isPublic, | ||
}, | ||
{ | ||
headers: { | ||
@@ -57,2 +62,3 @@ "Content-Type": "application/json", | ||
} catch (e: unknown) { | ||
console.log(e); | ||
if (e instanceof AxiosError) { | ||
@@ -94,5 +100,7 @@ throw new ApiError(e?.response?.data as ErrorData); | ||
constructor(clientOptions: InputClientOptions = {}) { | ||
constructor(clientOptions: InputClientOptions = {}, isPublic = true) { | ||
this.clientOptions = defaultOptions(clientOptions); | ||
this.memoryId = this.clientOptions.then((co) => createMemory(co)).then((res) => res.id); | ||
this.memoryId = this.clientOptions | ||
.then((co) => createMemory(co, isPublic)) | ||
.then((res) => res.id); | ||
} | ||
@@ -109,3 +117,3 @@ | ||
export type MemoryClient = { | ||
createMemory: () => Promise<{ id: string }>; | ||
createMemory: (isPublic: true) => Promise<{ id: string }>; | ||
updateMemory: (id: string, input: string, maxToken?: number) => Promise<{ success: boolean }>; | ||
@@ -112,0 +120,0 @@ getAllMemories: () => Promise<{ ids: string[] }>; |
{ | ||
"name": "polyfact", | ||
"version": "0.1.48", | ||
"version": "0.1.49", | ||
"main": "dist/index.js", | ||
@@ -11,2 +11,3 @@ "types": "dist/index.d.ts", | ||
"@supabase/supabase-js": "^2.31.0", | ||
"@types/pdf-parse": "^1.1.1", | ||
"@types/readable-stream": "^4.0.0", | ||
@@ -21,2 +22,3 @@ "async-mutex": "^0.4.0", | ||
"js-tiktoken": "^1.0.7", | ||
"pdf-parse": "^1.1.1", | ||
"polyfact-io-ts": "^2.2.20", | ||
@@ -23,0 +25,0 @@ "readable-stream": "^4.4.2", |
Sorry, the diff of this file is not supported yet
5728263
98
4741
17
+ Added@types/pdf-parse@^1.1.1
+ Addedpdf-parse@^1.1.1
+ Added@types/pdf-parse@1.1.4(transitive)
+ Addeddebug@3.2.7(transitive)
+ Addedms@2.1.3(transitive)
+ Addednode-ensure@0.0.0(transitive)
+ Addedpdf-parse@1.1.1(transitive)