Comparing version 0.1.22 to 0.1.23
import * as t from "polyfact-io-ts"; | ||
import { GenerationOptions } from "../generate"; | ||
import { ClientOptions } from "../clientOpts"; | ||
import { Memory } from "../memory"; | ||
declare const Message: t.TypeC<{ | ||
@@ -15,7 +17,9 @@ id: t.StringC; | ||
clientOptions: ClientOptions; | ||
autoMemory?: Memory; | ||
constructor(options?: { | ||
provider?: "openai" | "cohere"; | ||
systemPrompt?: string; | ||
autoMemory?: boolean; | ||
}, clientOptions?: Partial<ClientOptions>); | ||
sendMessageWithTokenUsage(message: string): Promise<{ | ||
sendMessageWithTokenUsage(message: string, options?: GenerationOptions): Promise<{ | ||
result: string; | ||
@@ -27,3 +31,3 @@ tokenUsage: { | ||
}>; | ||
sendMessage(message: string): Promise<string>; | ||
sendMessage(message: string, options?: GenerationOptions): Promise<string>; | ||
getMessages(): Promise<t.TypeOf<typeof Message>[]>; | ||
@@ -30,0 +34,0 @@ } |
@@ -34,2 +34,3 @@ "use strict"; | ||
const clientOpts_1 = require("../clientOpts"); | ||
const memory_1 = require("../memory"); | ||
const Message = t.type({ | ||
@@ -57,10 +58,20 @@ id: t.string, | ||
this.provider = options.provider || "openai"; | ||
if (options.autoMemory) { | ||
this.autoMemory = new memory_1.Memory(this.clientOptions); | ||
} | ||
} | ||
async sendMessageWithTokenUsage(message) { | ||
async sendMessageWithTokenUsage(message, options = {}) { | ||
const chatId = await this.chatId; | ||
const result = await (0, generate_1.generateWithTokenUsage)(message, { chatId }); | ||
if (this.autoMemory && !options.memory && !options.memoryId) { | ||
options.memory = this.autoMemory; | ||
} | ||
const result = await (0, generate_1.generateWithTokenUsage)(message, { ...options, chatId }, this.clientOptions); | ||
if (this.autoMemory) { | ||
this.autoMemory.add(`Human: ${message}`); | ||
this.autoMemory.add(`AI: ${result.result}`); | ||
} | ||
return result; | ||
} | ||
async sendMessage(message) { | ||
const result = await this.sendMessageWithTokenUsage(message); | ||
async sendMessage(message, options = {}) { | ||
const result = await this.sendMessageWithTokenUsage(message, options); | ||
return result.result; | ||
@@ -67,0 +78,0 @@ } |
@@ -11,4 +11,13 @@ /// <reference types="node" /> | ||
import { ClientOptions } from "./clientOpts"; | ||
export { generate, generateWithTokenUsage, generateWithType, generateWithTypeWithTokenUsage, splitString, tokenCount, t, GenerationOptions, transcribe, createMemory, updateMemory, getAllMemories, Chat, Memory, }; | ||
import { get as KVGet, set as KVSet } from "./kv"; | ||
declare const kv: { | ||
get: typeof KVGet; | ||
set: typeof KVSet; | ||
}; | ||
export { generate, generateWithTokenUsage, generateWithType, generateWithTypeWithTokenUsage, splitString, tokenCount, t, GenerationOptions, transcribe, createMemory, updateMemory, getAllMemories, Chat, Memory, kv, }; | ||
export default function client(clientOptions: Partial<ClientOptions>): { | ||
kv: { | ||
get: (key: string) => Promise<string>; | ||
set: (key: string, value: string) => Promise<void>; | ||
}; | ||
createChat: (systemPrompt?: string | undefined) => Promise<string>; | ||
@@ -15,0 +24,0 @@ Chat: (options?: { |
@@ -26,3 +26,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
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.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; | ||
const t = __importStar(require("polyfact-io-ts")); | ||
@@ -48,2 +48,8 @@ exports.t = t; | ||
Object.defineProperty(exports, "tokenCount", { enumerable: true, get: function () { return split_1.tokenCount; } }); | ||
const kv_1 = __importStar(require("./kv")); | ||
const kv = { | ||
get: kv_1.get, | ||
set: kv_1.set, | ||
}; | ||
exports.kv = kv; | ||
function client(clientOptions) { | ||
@@ -56,4 +62,5 @@ return { | ||
...(0, chats_1.default)(clientOptions), | ||
kv: (0, kv_1.default)(clientOptions), | ||
}; | ||
} | ||
exports.default = client; |
@@ -84,4 +84,4 @@ "use strict"; | ||
constructor(clientOptions = {}) { | ||
this.memoryId = createMemory().then((res) => res.id); | ||
this.clientOptions = (0, clientOpts_1.defaultOptions)(clientOptions); | ||
this.memoryId = createMemory(this.clientOptions).then((res) => res.id); | ||
} | ||
@@ -88,0 +88,0 @@ async add(input, { maxToken = 0 } = {}) { |
@@ -6,3 +6,3 @@ import * as readline from "node:readline/promises"; | ||
async function main() { | ||
const chat = new Chat(); | ||
const chat = new Chat({ autoMemory: true }); | ||
@@ -9,0 +9,0 @@ const rl = readline.createInterface({ input, output }); |
import axios from "axios"; | ||
import * as t from "polyfact-io-ts"; | ||
import { generateWithTokenUsage } from "../generate"; | ||
import { generateWithTokenUsage, GenerationOptions } from "../generate"; | ||
import { ClientOptions, defaultOptions } from "../clientOpts"; | ||
import { Memory } from "../memory"; | ||
@@ -39,4 +40,10 @@ const Message = t.type({ | ||
autoMemory?: Memory; | ||
constructor( | ||
options: { provider?: "openai" | "cohere"; systemPrompt?: string } = {}, | ||
options: { | ||
provider?: "openai" | "cohere"; | ||
systemPrompt?: string; | ||
autoMemory?: boolean; | ||
} = {}, | ||
clientOptions: Partial<ClientOptions> = {}, | ||
@@ -47,2 +54,5 @@ ) { | ||
this.provider = options.provider || "openai"; | ||
if (options.autoMemory) { | ||
this.autoMemory = new Memory(this.clientOptions); | ||
} | ||
} | ||
@@ -52,12 +62,26 @@ | ||
message: string, | ||
options: GenerationOptions = {}, | ||
): Promise<{ result: string; tokenUsage: { input: number; output: number } }> { | ||
const chatId = await this.chatId; | ||
const result = await generateWithTokenUsage(message, { chatId }); | ||
if (this.autoMemory && !options.memory && !options.memoryId) { | ||
options.memory = this.autoMemory; | ||
} | ||
const result = await generateWithTokenUsage( | ||
message, | ||
{ ...options, chatId }, | ||
this.clientOptions, | ||
); | ||
if (this.autoMemory) { | ||
this.autoMemory.add(`Human: ${message}`); | ||
this.autoMemory.add(`AI: ${result.result}`); | ||
} | ||
return result; | ||
} | ||
async sendMessage(message: string): Promise<string> { | ||
const result = await this.sendMessageWithTokenUsage(message); | ||
async sendMessage(message: string, options: GenerationOptions = {}): Promise<string> { | ||
const result = await this.sendMessageWithTokenUsage(message, options); | ||
@@ -64,0 +88,0 @@ return result.result; |
@@ -12,3 +12,9 @@ import * as t from "polyfact-io-ts"; | ||
import { ClientOptions } from "./clientOpts"; | ||
import kvClient, { get as KVGet, set as KVSet } from "./kv"; | ||
const kv = { | ||
get: KVGet, | ||
set: KVSet, | ||
}; | ||
export { | ||
@@ -29,2 +35,3 @@ generate, | ||
Memory, | ||
kv, | ||
}; | ||
@@ -39,3 +46,4 @@ | ||
...chatClient(clientOptions), | ||
kv: kvClient(clientOptions), | ||
}; | ||
} |
@@ -108,4 +108,4 @@ import axios from "axios"; | ||
constructor(clientOptions: Partial<ClientOptions> = {}) { | ||
this.memoryId = createMemory().then((res) => res.id); | ||
this.clientOptions = defaultOptions(clientOptions); | ||
this.memoryId = createMemory(this.clientOptions).then((res) => res.id); | ||
} | ||
@@ -112,0 +112,0 @@ |
{ | ||
"name": "polyfact", | ||
"version": "0.1.22", | ||
"version": "0.1.23", | ||
"main": "dist/index.js", | ||
@@ -5,0 +5,0 @@ "types": "dist/index.d.ts", |
Sorry, the diff of this file is not supported yet
936034
55
2131