UNPKG

@prexo/ai-chat-sdk

Version:

AI Chat SDK for building AI chat applications with Context and History

2 lines 1.09 kB
'use strict';var redis=require('@upstash/redis');var d=Object.defineProperty;var p=(t,e,s)=>e in t?d(t,e,{enumerable:true,configurable:true,writable:true,value:s}):t[e]=s;var g=(t,e,s)=>p(t,e+"",s);var c=t=>`prexo-chat-session/${t||"default"}`;`msg-${Date.now().toString()}`;var r=class{constructor(e){g(this,"client");let{config:s,client:i}=e;if(i)this.client=i;else if(s)this.client=new redis.Redis(s);else throw new Error("Redis message stores require either a config object or a pre-configured client.")}async addMessage(e){let{message:s,sessionId:i,sessionTTL:o}=e,n=86400;o&&(n=o);let a=c(i);await this.client.lpush(a,JSON.stringify(s)),o&&await this.client.expire(a,n);}async deleteMessages({sessionId:e}){await this.client.del(e);}async getMessages({sessionId:e,amount:s=50,startIndex:i=0}){let o=c(e),n=i+s-1;return (await this.client.lrange(o,i,n)).reverse()}};var f=t=>{let e=t?.redis?.url,s=t?.redis?.token;if(e&&s)return new r({config:{url:e,token:s}})};exports.InRedisHistory=r;exports.getHistoryClient=f;//# sourceMappingURL=history.cjs.map //# sourceMappingURL=history.cjs.map