For setup and authentication options, see the Installation guide and Authentication.
Parameters
Configuration for the client connection.
Show child attributes
Show child attributes
Assistant name.
Provider configuration for the assistant. Provide exactly one of
model, agentkit, or websocket.Show child attributes
Show child attributes
Description for this provider configuration.
AgentKit provider configuration.
Show child attributes
Show child attributes
AgentKit gRPC endpoint in
host or host:port format.gRPC metadata sent to your AgentKit server, such as auth or routing keys.
Transport mode. Use
TLS or PLAINTEXT. Defaults to TLS.TLS verification mode. Use
VERIFY or SKIP_VERIFY. Defaults to VERIFY.Server name used for TLS verification when it differs from the dial address.
Optional PEM CA certificate for private or self-signed TLS.
Connection timeout in milliseconds. Allowed range:
1 to 300000.Keepalive ping interval in milliseconds. Allowed range:
10000 to 3600000.Keepalive response timeout in milliseconds. Allowed range:
1000 to 300000.Maximum inbound gRPC message size. Allowed range:
1024 to 104857600.Maximum outbound gRPC message size. Allowed range:
1024 to 104857600.WebSocket provider configuration.
Assistant description.
Assistant visibility, for example
private.Assistant language code, for example
en.Tags to attach to the assistant.
Tools to attach to the assistant.
Knowledge sources to attach to the assistant.
Usage
import {
ConnectionConfig,
CreateAssistant,
CreateAssistantRequest,
CreateAssistantProviderRequest,
Metadata,
TextChatCompletePrompt,
TextPrompt,
} from "@rapidaai/react";
const auth = ConnectionConfig.WithPersonalToken({
Authorization: "AUTHORIZATION_TOKEN_PLACEHOLDER",
AuthId: "AUTH_ID_PLACEHOLDER",
ProjectId: "PROJECT_ID_PLACEHOLDER",
});
const connectionCfg = ConnectionConfig.DefaultConnectionConfig(auth);
const systemPrompt = new TextPrompt();
systemPrompt.setRole("system");
systemPrompt.setContent("You are a helpful support assistant.");
const template = new TextChatCompletePrompt();
template.addPrompt(systemPrompt);
const modelOption = new Metadata();
modelOption.setKey("model");
modelOption.setValue("gpt-4o-mini");
const model = new CreateAssistantProviderRequest.CreateAssistantProviderModel();
model.setModelprovidername("openai");
model.setTemplate(template);
model.addAssistantmodeloptions(modelOption);
const provider = new CreateAssistantProviderRequest();
provider.setDescription("Primary model provider");
provider.setModel(model);
const request = new CreateAssistantRequest();
request.setName("Support assistant");
request.setDescription("Answers customer support questions.");
request.setVisibility("private");
request.setLanguage("en");
request.setTagsList(["support", "production"]);
request.setAssistantprovider(provider);
const response = await CreateAssistant(connectionCfg, request, auth);
console.dir(response.toObject());
import {
ConnectionConfig,
CreateAssistant,
CreateAssistantRequest,
CreateAssistantProviderRequest,
Metadata,
TextChatCompletePrompt,
TextPrompt,
} from "@rapidaai/nodejs";
const connectionCfg = ConnectionConfig.DefaultConnectionConfig(
ConnectionConfig.WithSDK({
ApiKey: process.env.RAPIDA_API_KEY,
})
);
const systemPrompt = new TextPrompt();
systemPrompt.setRole("system");
systemPrompt.setContent("You are a helpful support assistant.");
const template = new TextChatCompletePrompt();
template.addPrompt(systemPrompt);
const modelOption = new Metadata();
modelOption.setKey("model");
modelOption.setValue("gpt-4o-mini");
const model = new CreateAssistantProviderRequest.CreateAssistantProviderModel();
model.setModelprovidername("openai");
model.setTemplate(template);
model.addAssistantmodeloptions(modelOption);
const provider = new CreateAssistantProviderRequest();
provider.setDescription("Primary model provider");
provider.setModel(model);
const request = new CreateAssistantRequest();
request.setName("Support assistant");
request.setDescription("Answers customer support questions.");
request.setVisibility("private");
request.setLanguage("en");
request.setTagsList(["support", "production"]);
request.setAssistantprovider(provider);
try {
const response = await CreateAssistant(connectionCfg, request);
console.dir(response.toObject());
} catch (error) {
console.error("Error with CreateAssistant call:", error);
}
import os
from pprint import pprint
from rapida import (
ConnectionConfig,
CreateAssistantProviderRequest,
CreateAssistantRequest,
Metadata,
TextChatCompletePrompt,
TextPrompt,
create_assistant,
)
connection_config = ConnectionConfig.default_connection_config(
ConnectionConfig.with_sdk(os.getenv("RAPIDA_API_KEY"))
)
provider = CreateAssistantProviderRequest(
description="Primary model provider",
model=CreateAssistantProviderRequest.CreateAssistantProviderModel(
modelProviderName="openai",
template=TextChatCompletePrompt(
prompt=[
TextPrompt(
role="system",
content="You are a helpful support assistant.",
)
],
),
assistantModelOptions=[
Metadata(key="model", value="gpt-4o-mini"),
],
),
)
response = create_assistant(
client_cfg=connection_config,
request=CreateAssistantRequest(
name="Support assistant",
description="Answers customer support questions.",
visibility="private",
language="en",
tags=["support", "production"],
assistantProvider=provider,
),
)
pprint(response)
package main
import (
"context"
"fmt"
"os"
"github.com/rapidaai/rapida-go/rapida/clients"
"github.com/rapidaai/rapida-go/rapida/connections"
protos "github.com/rapidaai/rapida-go/protos"
)
func main() {
connectionConfig := connections.DefaultconnectionConfig(
connections.WithSDK(os.Getenv("RAPIDA_API_KEY")),
)
response, err := clients.CreateAssistant(
context.Background(),
connectionConfig,
&protos.CreateAssistantRequest{
Name: "Support assistant",
Description: "Answers customer support questions.",
Visibility: "private",
Language: "en",
Tags: []string{"support", "production"},
AssistantProvider: &protos.CreateAssistantProviderRequest{
Description: "Primary model provider",
AssistantProvider: &protos.CreateAssistantProviderRequest_Model{
Model: &protos.CreateAssistantProviderRequest_CreateAssistantProviderModel{
ModelProviderName: "openai",
Template: &protos.TextChatCompletePrompt{
Prompt: []*protos.TextPrompt{{
Role: "system",
Content: "You are a helpful support assistant.",
}},
},
AssistantModelOptions: []*protos.Metadata{{
Key: "model",
Value: "gpt-4o-mini",
}},
},
},
},
},
)
if err != nil {
fmt.Printf("error while creating assistant: %+v\n", err)
return
}
fmt.Printf("create assistant response: %+v\n", response)
}
Create an AgentKit assistant
Use theagentkit provider when Rapida should handle telephony, STT, and TTS while your backend handles reasoning over the AgentKit gRPC stream.
{
"name": "AgentKit support assistant",
"description": "Routes live conversations to a custom AgentKit backend.",
"visibility": "private",
"language": "en",
"tags": ["support", "agentkit"],
"assistantProvider": {
"description": "AgentKit production backend",
"agentkit": {
"agentKitUrl": "agent.your-domain.com:50051",
"metadata": {
"authorization": "shared-token",
"tenant": "acme"
},
"transportSecurity": "TLS",
"tlsVerification": "VERIFY",
"tlsServerName": "agent.your-domain.com",
"connectTimeoutMs": 10000,
"keepaliveTimeMs": 30000,
"keepaliveTimeoutMs": 10000,
"maxRecvMessageBytes": 16777216,
"maxSendMessageBytes": 16777216
}
}
}
import {
ConnectionConfig,
CreateAssistant,
CreateAssistantProviderRequest,
CreateAssistantRequest,
} from "@rapidaai/nodejs";
const auth = ConnectionConfig.WithPersonalToken({
Authorization: process.env.RAPIDA_AUTHORIZATION,
AuthId: process.env.RAPIDA_AUTH_ID,
ProjectId: process.env.RAPIDA_PROJECT_ID,
});
const connectionCfg = ConnectionConfig.DefaultConnectionConfig(auth);
const agentkit = new CreateAssistantProviderRequest.CreateAssistantProviderAgentkit();
agentkit.setAgentkiturl("agent.your-domain.com:50051");
agentkit.setTransportsecurity("TLS");
agentkit.setTlsverification("VERIFY");
agentkit.setTlsservername("agent.your-domain.com");
agentkit.setConnecttimeoutms(10000);
agentkit.setKeepalivetimems(30000);
agentkit.setKeepalivetimeoutms(10000);
agentkit.setMaxrecvmessagebytes(16777216);
agentkit.setMaxsendmessagebytes(16777216);
agentkit.getMetadataMap().set("authorization", process.env.AGENTKIT_TOKEN || "");
const provider = new CreateAssistantProviderRequest();
provider.setDescription("AgentKit production backend");
provider.setAgentkit(agentkit);
const request = new CreateAssistantRequest();
request.setName("AgentKit support assistant");
request.setDescription("Routes live conversations to a custom AgentKit backend.");
request.setVisibility("private");
request.setLanguage("en");
request.setTagsList(["support", "agentkit"]);
request.setAssistantprovider(provider);
const response = await CreateAssistant(connectionCfg, request, auth);
console.dir(response.toObject());
import os
from pprint import pprint
from rapida import (
ConnectionConfig,
CreateAssistantProviderRequest,
CreateAssistantRequest,
create_assistant,
)
auth = ConnectionConfig.with_personal_token(
authorization=os.getenv("RAPIDA_AUTHORIZATION"),
auth_id=os.getenv("RAPIDA_AUTH_ID"),
project_id=os.getenv("RAPIDA_PROJECT_ID"),
)
connection_config = ConnectionConfig.default_connection_config(auth)
provider = CreateAssistantProviderRequest(
description="AgentKit production backend",
agentkit=CreateAssistantProviderRequest.CreateAssistantProviderAgentkit(
agentKitUrl="agent.your-domain.com:50051",
metadata={"authorization": os.getenv("AGENTKIT_TOKEN", "")},
transportSecurity="TLS",
tlsVerification="VERIFY",
tlsServerName="agent.your-domain.com",
connectTimeoutMs=10000,
keepaliveTimeMs=30000,
keepaliveTimeoutMs=10000,
maxRecvMessageBytes=16777216,
maxSendMessageBytes=16777216,
),
)
response = create_assistant(
client_cfg=connection_config,
request=CreateAssistantRequest(
name="AgentKit support assistant",
description="Routes live conversations to a custom AgentKit backend.",
visibility="private",
language="en",
tags=["support", "agentkit"],
assistantProvider=provider,
),
)
pprint(response)
package main
import (
"context"
"fmt"
"os"
"github.com/rapidaai/rapida-go/rapida/clients"
"github.com/rapidaai/rapida-go/rapida/connections"
protos "github.com/rapidaai/rapida-go/protos"
)
func main() {
connectionConfig := connections.DefaultconnectionConfig(
connections.WithPersonalToken(
os.Getenv("RAPIDA_AUTHORIZATION"),
os.Getenv("RAPIDA_AUTH_ID"),
os.Getenv("RAPIDA_PROJECT_ID"),
),
)
request := &protos.CreateAssistantRequest{
Name: "AgentKit support assistant",
Description: "Routes live conversations to a custom AgentKit backend.",
Visibility: "private",
Language: "en",
Tags: []string{"support", "agentkit"},
AssistantProvider: &protos.CreateAssistantProviderRequest{
Description: "AgentKit production backend",
AssistantProvider: &protos.CreateAssistantProviderRequest_Agentkit{
Agentkit: &protos.CreateAssistantProviderRequest_CreateAssistantProviderAgentkit{
AgentKitUrl: "agent.your-domain.com:50051",
Metadata: map[string]string{"authorization": os.Getenv("AGENTKIT_TOKEN")},
TransportSecurity: "TLS",
TlsVerification: "VERIFY",
TlsServerName: "agent.your-domain.com",
ConnectTimeoutMs: 10000,
KeepaliveTimeMs: 30000,
KeepaliveTimeoutMs: 10000,
MaxRecvMessageBytes: 16777216,
MaxSendMessageBytes: 16777216,
},
},
},
}
response, err := clients.CreateAssistant(context.Background(), connectionConfig, request)
if err != nil {
fmt.Printf("error while creating AgentKit assistant: %+v\n", err)
return
}
fmt.Printf("create assistant response: %+v\n", response)
}
Response
Numeric status code for the operation.
Indicates whether the operation was successful.
Created assistant.
Show child attributes
Show child attributes
Unique identifier for the assistant.
Assistant name.
Assistant description.
Current assistant status.
Assistant visibility.
Active provider type.
Model provider details when the assistant uses a model-backed provider.
AgentKit provider details when the assistant uses AgentKit.
Show child attributes
Show child attributes
Unique identifier for the AgentKit provider version.
AgentKit gRPC endpoint.
Metadata sent to the AgentKit backend.
Transport mode for the AgentKit connection.
TLS verification mode.
TLS server name override.
Connection timeout in milliseconds.
Keepalive ping interval in milliseconds.
Keepalive response timeout in milliseconds.
Maximum inbound gRPC message size.
Maximum outbound gRPC message size.
WebSocket provider details when the assistant uses a WebSocket provider.
Tools attached to the assistant.
Error details when the operation fails.