UNPKG

@prexo/ai-chat-sdk

Version:

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

2 lines 1.07 kB
import {Redis}from'@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(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}})};export{r as InRedisHistory,f as getHistoryClient};//# sourceMappingURL=history.js.map //# sourceMappingURL=history.js.map