@@ -47,134 +47,115 @@ export default class LongTermMemory extends PluginBase {
4747 defaultHeaders : openaiDefaultHeaders ,
4848 } ) ;
4949
50- athena . registerTool (
51- {
52- name : "ltm/store" ,
53- desc : "Store some data to your long-term memory." ,
54- args : {
55- desc : {
56- type : "string" ,
57- desc : "A description of the data." ,
58- required : true ,
59- } ,
60- data : {
61- type : "object" ,
62- desc : "The data to store." ,
63- required : true ,
64- } ,
50+ athena . registerTool ( {
51+ name : "ltm/store" ,
52+ desc : "Store some data to your long-term memory." ,
53+ args : {
54+ desc : {
55+ type : "string" ,
56+ desc : "A description of the data." ,
57+ required : true ,
6558 } ,
66- retvals : {
67- status : {
68- type : "string" ,
69- desc : "The status of the operation." ,
70- required : true ,
71- } ,
59+ data : {
60+ type : "object" ,
61+ desc : "The data to store." ,
62+ required : true ,
7263 } ,
7364 } ,
74- {
75- fn : async ( args : Dict < any > ) => {
76- const embedding = await this . openai . embeddings . create ( {
77- model : this . config . vector_model ,
78- dimensions : this . config . dimensions ,
79- input : args . desc ,
80- encoding_format : "float" ,
81- } ) ;
82- insertStmt . run (
83- Float32Array . from ( embedding . data [ 0 ] . embedding ) ,
84- args . desc ,
85- JSON . stringify ( args . data ) ,
86- ) ;
87- return { status : "success" } ;
65+ retvals : {
66+ status : {
67+ type : "string" ,
68+ desc : "The status of the operation." ,
69+ required : true ,
8870 } ,
8971 } ,
90- ) ;
91- // TODO: Implement remove
92- athena . registerTool (
93- {
94- name : "ltm/list" ,
95- desc : "List your long-term memory." ,
96- args : { } ,
97- retvals : {
98- list : {
99- type : "array" ,
100- desc : "The list of metadata of the long-term memory." ,
101- required : true ,
72+ fn : async ( args : Dict < any > ) => {
73+ const embedding = await this . openai . embeddings . create ( {
74+ model : this . config . vector_model ,
75+ dimensions : this . config . dimensions ,
76+ input : args . desc ,
77+ encoding_format : "float" ,
78+ } ) ;
79+ insertStmt . run (
80+ Float32Array . from ( embedding . data [ 0 ] . embedding ) ,
81+ args . desc ,
82+ JSON . stringify ( args . data ) ,
83+ ) ;
84+ return { status : "success" } ;
85+ } ,
86+ } ) ;
87+ athena . registerTool ( {
88+ name : "ltm/list" ,
89+ desc : "List your long-term memory." ,
90+ args : { } ,
91+ retvals : {
92+ list : {
93+ type : "array" ,
94+ desc : "The list of metadata of the long-term memory." ,
95+ required : true ,
96+ of : {
97+ type : "object" ,
98+ desc : "The metadata of the long-term memory." ,
99+ required : false ,
102100 of : {
103- type : "object" ,
104- desc : "The metadata of the long-term memory." ,
105- required : false ,
106- of : {
107- desc : {
108- type : "string" ,
109- desc : "The description of the data." ,
110- required : true ,
111- } ,
101+ desc : {
102+ type : "string" ,
103+ desc : "The description of the data." ,
104+ required : true ,
112105 } ,
113106 } ,
114107 } ,
115108 } ,
116109 } ,
117- {
118- fn : async ( args : Dict < any > ) => {
119- const list = this . db
120- . prepare ( "SELECT desc, data FROM vec_items" )
121- . all ( ) ;
122- return {
123- list : list . map ( ( item ) => ( {
124- desc : String ( item . desc ) ,
125- data : JSON . parse ( String ( item . data ) ) ,
126- } ) ) ,
127- } ;
128- } ,
110+ fn : async ( args : Dict < any > ) => {
111+ const list = this . db . prepare ( "SELECT desc, data FROM vec_items" ) . all ( ) ;
112+ return { list : list } ;
129113 } ,
130- ) ;
131- athena . registerTool (
132- {
133- name : "ltm/retrieve" ,
134- desc : "Retrieve data from your long-term memory." ,
135- args : {
136- query : {
137- type : "string" ,
138- desc : "The query to retrieve the data." ,
139- required : true ,
140- } ,
114+ } ) ;
115+ athena . registerTool ( {
116+ name : "ltm/retrieve" ,
117+ desc : "Retrieve data from your long-term memory." ,
118+ args : {
119+ query : {
120+ type : "string" ,
121+ desc : "The query to retrieve the data." ,
122+ required : true ,
141123 } ,
142- retvals : {
143- list : {
144- type : "array" ,
145- desc : "Query results list of metadata of the long-term memory." ,
146- required : true ,
124+ } ,
125+ retvals : {
126+ list : {
127+ type : "array" ,
128+ desc : "Query results list of metadata of the long-term memory." ,
129+ required : true ,
130+ of : {
131+ type : "object" ,
132+ desc : "The desc and data of the long-term memory." ,
133+ required : false ,
147134 of : {
148- type : "object" ,
149- desc : "The desc and data of the long-term memory." ,
150- required : false ,
151- of : {
152- desc : {
153- type : "string" ,
154- desc : "The description of the data." ,
155- required : true ,
156- } ,
157- data : {
158- type : "object" ,
159- desc : "The data." ,
160- required : true ,
161- } ,
135+ desc : {
136+ type : "string" ,
137+ desc : "The description of the data." ,
138+ required : true ,
139+ } ,
140+ data : {
141+ type : "object" ,
142+ desc : "The data." ,
143+ required : true ,
162144 } ,
163145 } ,
164146 } ,
165147 } ,
166148 } ,
167- {
168- fn : async ( args ) => {
169- const embedding = await this . openai . embeddings . create ( {
170- model : this . config . vector_model ,
171- dimensions : this . config . dimensions ,
172- input : args . query ,
173- encoding_format : "float" ,
174- } ) ;
175- const results = this . db
176- . prepare (
177- `SELECT
149+ fn : async ( args : Dict < any > ) => {
150+ const embedding = await this . openai . embeddings . create ( {
151+ model : this . config . vector_model ,
152+ dimensions : this . config . dimensions ,
153+ input : args . query ,
154+ encoding_format : "float" ,
155+ } ) ;
156+ const results = this . db
157+ . prepare (
158+ `SELECT
178159 distance,
179160 desc,
180161 data
0 commit comments