Integration examples for popular frameworks.
import { useState, useCallback } from 'react';
import { createMoaClient } from 'memofai';
export function useMemofai({ apiToken, botId }) {
const [client] = useState(() => createMoaClient({ apiToken }));
const [memories, setMemories] = useState([]);
const [loading, setLoading] = useState(false);
const searchMemories = useCallback(async (query) => {
setLoading(true);
try {
const results = await client.memories.search({ botId, query, limit: 20 });
setMemories(results);
} finally {
setLoading(false);
}
}, [client, botId]);
return { memories, loading, searchMemories };
}// pages/api/memories/search.ts
import { NextApiRequest, NextApiResponse } from 'next';
import { createMoaClient } from 'memofai';
const client = createMoaClient({
apiToken: process.env.MEMOFAI_API_TOKEN!
});
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
const { botId, query, limit = 10 } = req.body;
const memories = await client.memories.search({ botId, query, limit });
res.json({ memories });
}import express from 'express';
import { createMoaClient } from 'memofai';
const app = express();
const client = createMoaClient({ apiToken: process.env.MEMOFAI_API_TOKEN! });
app.post('/bots/:botId/memories/search', async (req, res) => {
const { botId } = req.params;
const { query, limit = 10 } = req.body;
const memories = await client.memories.search({ botId, query, limit });
res.json({ memories });
});import { ref } from 'vue';
import { createMoaClient } from 'memofai';
export function useMemofai(apiToken: string) {
const client = createMoaClient({ apiToken });
const memories = ref([]);
const searchMemories = async (botId: string, query: string) => {
memories.value = await client.memories.search({ botId, query });
};
return { memories, searchMemories };
}