Python
# To use the Python SDK, install the package:
# pip install memobase
from memobase import MemoBaseClient
from memobase.core.blob import ChatBlob
client = MemoBaseClient(project_url='PROJECT_URL', api_key='PROJECT_TOKEN')
uid = client.add_user()
u = client.get_user(uid)
b = ChatBlob(messages=[
{
"role": "user",
"content": "Hi, I'm here again"
},
{
"role": "assistant",
"content": "Hi, Gus! How can I help you?"
}
])
u.insert(b)
u.flush(sync=True)
events = u.search_event_gist('query')
print(events)// To use the Go SDK, install the package:
// go get github.com/memodb-io/memobase/src/client/memobase-go@latest
import (
"fmt"
"log"
"github.com/memodb-io/memobase/src/client/memobase-go/core"
"github.com/memodb-io/memobase/src/client/memobase-go/blob"
)
func main() {
projectURL := "YOUR_PROJECT_URL"
apiKey := "YOUR_API_KEY"
// Initialize the client
client, err := core.NewMemoBaseClient(
projectURL,
apiKey,
)
if err != nil {
log.Fatalf("Failed to create client: %v", err)
}
// Get a user
userID := "EXISTING_USER_ID" // Replace with an actual user ID
user, err := client.GetUser(userID, false)
if err != nil {
log.Fatalf("Failed to get user: %v", err)
}
// Insert chat to generate event
chat := &blob.ChatBlob{
BaseBlob: blob.BaseBlob{Type: blob.ChatType},
Messages: []blob.OpenAICompatibleMessage{
{Role: "user", Content: "Hi, I'm here again"},
{Role: "assistant", Content: "Hi, Gus! How can I help you?"},
},
}
_, err = user.Insert(chat, false)
if err != nil {
log.Fatalf("Failed to insert chat: %v", err)
}
// Flush to process the chat
err = user.Flush(blob.ChatType, true)
if err != nil {
log.Fatalf("Failed to flush: %v", err)
}
// Search for event gists
gistEvents, err := user.SearchEventGist("query")
if err != nil {
log.Fatalf("Failed to search event gists: %v", err)
}
fmt.Printf("Found %d event gists\n", len(gistEvents))
for _, event := range gistEvents {
fmt.Printf("Event ID: %s, Content: %s, Similarity: %.2f\n",
event.ID, event.GistData.Content, event.Similarity)
}
}curl --request GET \
--url https://api.memobase.dev/api/v1/users/event_gist/search/{user_id} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.memobase.dev/api/v1/users/event_gist/search/{user_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.memobase.dev/api/v1/users/event_gist/search/{user_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}HttpResponse<String> response = Unirest.get("https://api.memobase.dev/api/v1/users/event_gist/search/{user_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.memobase.dev/api/v1/users/event_gist/search/{user_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": {
"gists": [
{
"id": "<string>",
"gist_data": {
"content": "<string>"
},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"similarity": 123
}
],
"events": [
{
"id": "<string>",
"event_data": {
"profile_delta": [
{
"content": "<string>",
"attributes": {}
}
],
"event_tip": "<string>",
"event_tags": [
{
"tag": "<string>",
"value": "<string>"
}
]
},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"similarity": 123
}
]
},
"errno": 0,
"errmsg": ""
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}User Events
Search Event Gists
GET
/
api
/
v1
/
users
/
event_gist
/
search
/
{user_id}
Python
# To use the Python SDK, install the package:
# pip install memobase
from memobase import MemoBaseClient
from memobase.core.blob import ChatBlob
client = MemoBaseClient(project_url='PROJECT_URL', api_key='PROJECT_TOKEN')
uid = client.add_user()
u = client.get_user(uid)
b = ChatBlob(messages=[
{
"role": "user",
"content": "Hi, I'm here again"
},
{
"role": "assistant",
"content": "Hi, Gus! How can I help you?"
}
])
u.insert(b)
u.flush(sync=True)
events = u.search_event_gist('query')
print(events)// To use the Go SDK, install the package:
// go get github.com/memodb-io/memobase/src/client/memobase-go@latest
import (
"fmt"
"log"
"github.com/memodb-io/memobase/src/client/memobase-go/core"
"github.com/memodb-io/memobase/src/client/memobase-go/blob"
)
func main() {
projectURL := "YOUR_PROJECT_URL"
apiKey := "YOUR_API_KEY"
// Initialize the client
client, err := core.NewMemoBaseClient(
projectURL,
apiKey,
)
if err != nil {
log.Fatalf("Failed to create client: %v", err)
}
// Get a user
userID := "EXISTING_USER_ID" // Replace with an actual user ID
user, err := client.GetUser(userID, false)
if err != nil {
log.Fatalf("Failed to get user: %v", err)
}
// Insert chat to generate event
chat := &blob.ChatBlob{
BaseBlob: blob.BaseBlob{Type: blob.ChatType},
Messages: []blob.OpenAICompatibleMessage{
{Role: "user", Content: "Hi, I'm here again"},
{Role: "assistant", Content: "Hi, Gus! How can I help you?"},
},
}
_, err = user.Insert(chat, false)
if err != nil {
log.Fatalf("Failed to insert chat: %v", err)
}
// Flush to process the chat
err = user.Flush(blob.ChatType, true)
if err != nil {
log.Fatalf("Failed to flush: %v", err)
}
// Search for event gists
gistEvents, err := user.SearchEventGist("query")
if err != nil {
log.Fatalf("Failed to search event gists: %v", err)
}
fmt.Printf("Found %d event gists\n", len(gistEvents))
for _, event := range gistEvents {
fmt.Printf("Event ID: %s, Content: %s, Similarity: %.2f\n",
event.ID, event.GistData.Content, event.Similarity)
}
}curl --request GET \
--url https://api.memobase.dev/api/v1/users/event_gist/search/{user_id} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.memobase.dev/api/v1/users/event_gist/search/{user_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.memobase.dev/api/v1/users/event_gist/search/{user_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}HttpResponse<String> response = Unirest.get("https://api.memobase.dev/api/v1/users/event_gist/search/{user_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.memobase.dev/api/v1/users/event_gist/search/{user_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": {
"gists": [
{
"id": "<string>",
"gist_data": {
"content": "<string>"
},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"similarity": 123
}
],
"events": [
{
"id": "<string>",
"event_data": {
"profile_delta": [
{
"content": "<string>",
"attributes": {}
}
],
"event_tip": "<string>",
"event_tags": [
{
"tag": "<string>",
"value": "<string>"
}
]
},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"similarity": 123
}
]
},
"errno": 0,
"errmsg": ""
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Search event gists by query.
Event gist is a fraction of User Event. For example, if a user event has the
The event gists will be
event_tips:
- A // info
- B // schedule
- C // reminder
- A // info- B // schedule- C // reminder
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The ID of the user
Query Parameters
The query to search for
Number of events to retrieve, default is 10
Similarity threshold, default is 0.2
Only allow events within the past few days, default is 180
Response
Successful Response
⌘I