Private Conversations
Introduction
In Index Network, you can engage in conversations with one or multiple Indexes. This interaction is facilitated by our storage system, which processes and stores information to allow natural, meaningful dialogue. Whether it's querying for specific information or engaging in an ongoing conversation, the Index Network enables seamless communication with its indexed data.
To start a conversation and interact with the data, follow these steps:
// Create a conversation
const conversationParams = {
sources: [index.id],
summary: "Mock summary",
members: [indexClient.wallet.address],
};
const conversation = await indexClient.createConversation(conversationParams);
// Add a message to the conversation
const messageParams = {
role: "user",
content: "How do you do this?",
};
const message = await indexClient.createMessage(conversation.id, messageParams);
// Retrieve messages from the conversation
const { messages } = await indexClient.getConversation(conversation.id);
console.log(messages);
The response should look something like this:
{
"id": "message-id",
"content": "How do you do this?",
"role": "user",
"createdAt": "timestamp"
}
Listening to Conversation Updates
The Index Client SDK allows you to listen for updates to a conversation in real-time. This is useful for applications that need to react to new messages or changes in a conversation.
Here is an example of how you can use the listenToConversationUpdates
method to handle real-time updates in a conversation:
const conversationId = "your-conversation-id";
const handleMessage = (data: any) => {
console.log("New message received:", data);
// Handle the new message data
};
const handleError = (error: any) => {
console.error("Error receiving updates:", error);
// Handle the error
};
const stopListening = indexClient.listenToConversationUpdates(
conversationId,
handleMessage,
handleError,
);
Interacting Through Conversations
{"sources":["did:pkh:eip155:1:0x1b9Aceb609a62bae0c0a9682A9268138Faff4F5f","kjzl6kcym7w8yaa2ylkzbqzcgh8str1hnofps4bfganauuk2v90uom48nddcog3"],"members":["did:key:z6Mkvrp9jeDqftYPzknEPnSb6majnfak8LqQfXZhYtF8vSFX","did:key:z6Mki5MGUYbXFNYiVisA9rhjqjJvd1ikBAf2u4qhnKPM5k3a"]}
POST /api/api/conversations HTTP/1.1
Host: dev.index.network
Authorization: Bearer DID_SESSION_SERIALIZED
Content-Type: application/json
Accept: */*
Content-Length: 271
{
"sources": [
"did:pkh:eip155:1:0x1b9Aceb609a62bae0c0a9682A9268138Faff4F5f",
"kjzl6kcym7w8yaa2ylkzbqzcgh8str1hnofps4bfganauuk2v90uom48nddcog3"
],
"members": [
"did:key:z6Mkvrp9jeDqftYPzknEPnSb6majnfak8LqQfXZhYtF8vSFX",
"did:key:z6Mki5MGUYbXFNYiVisA9rhjqjJvd1ikBAf2u4qhnKPM5k3a"
]
}
Successful response
No content
Conversation ID
GET /api/api/conversations/{conversationId} HTTP/1.1
Host: dev.index.network
Authorization: Bearer DID_SESSION_SERIALIZED
Accept: */*
Successful response
No content
Conversation ID
{"sources":["did:pkh:eip155:1:0x1b9Aceb609a62bae0c0a9682A9268138Faff4F5f"],"summary":"summary of the conversation, just for listing purposes."}
PUT /api/api/conversations/{conversationId} HTTP/1.1
Host: dev.index.network
Authorization: Bearer DID_SESSION_SERIALIZED
Content-Type: application/json
Accept: */*
Content-Length: 143
{
"sources": [
"did:pkh:eip155:1:0x1b9Aceb609a62bae0c0a9682A9268138Faff4F5f"
],
"summary": "summary of the conversation, just for listing purposes."
}
Successful response
No content
Conversation ID
DELETE /api/api/conversations/{conversationId} HTTP/1.1
Host: dev.index.network
Authorization: Bearer DID_SESSION_SERIALIZED
Accept: */*
Successful response
No content
Conversation ID
<YOUR_DID_SESSION_STR_HERE>
GET /api/api/conversations/{conversationId}/updates HTTP/1.1
Host: dev.index.network
Authorization: Bearer DID_SESSION_SERIALIZED
Accept: */*
Successful response
No content
Conversation ID
{"role":"user","content":"give me a very long hello world python code"}
POST /api/api/conversations/{conversationId}/messages HTTP/1.1
Host: dev.index.network
Authorization: Bearer DID_SESSION_SERIALIZED
Content-Type: application/json
Accept: */*
Content-Length: 71
{
"role": "user",
"content": "give me a very long hello world python code"
}
Successful response
No content
Conversation ID
Message ID
true
{"role":"user","content":"What is Index Network and how is it related to Ceramic?"}
PUT /api/api/conversations/{conversationId}/messages/{messageId} HTTP/1.1
Host: dev.index.network
Authorization: Bearer DID_SESSION_SERIALIZED
Content-Type: application/json
Accept: */*
Content-Length: 83
{
"role": "user",
"content": "What is Index Network and how is it related to Ceramic?"
}
Successful response
No content
Conversation ID
Message ID
true
DELETE /api/api/conversations/{conversationId}/messages/{messageId} HTTP/1.1
Host: dev.index.network
Authorization: Bearer DID_SESSION_SERIALIZED
Accept: */*
Successful response
No content
Last updated