Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
193 commits
Select commit Hold shift + click to select a range
5dbf136
[FEAT] iOS debug view
Jul 31, 2025
9bea5ef
[Android]Sync debug mode.
Jul 31, 2025
2e17dcc
[Android]Add login.
Aug 4, 2025
a86273d
[Android]Update convoai api &&doc. TEN-2427
Aug 4, 2025
65329d2
[Android]Update custom agent ui.
Aug 5, 2025
a8e361b
[Android]Update custom agent ui.
Aug 5, 2025
4ac04c4
[Android]Update the agent's call header and footer UI.
Aug 5, 2025
10c2080
[Android]Update ui.
Aug 5, 2025
db3cddf
[Android]Update transcript render mode.
Aug 6, 2025
b384d9d
[Android]Add voice print.
Aug 6, 2025
6dad93c
[FEAT] ios agent list
Aug 6, 2025
81e7e32
[Android]Update debug mode.
Aug 6, 2025
c4d8a87
[Android]Update agent list.
Aug 7, 2025
28ef1d6
[Android]Debugging custom agent.
Aug 7, 2025
411da4b
[Android]Add swipe refresh layout.
Aug 7, 2025
87e73fe
[Android]Update ui.
Aug 8, 2025
a30043f
[Android]Update message list.
Aug 8, 2025
fdde03a
[Android]Update agent setting ui.
Aug 8, 2025
4146e53
Transcript Text mode
Aug 4, 2025
8f5f87f
Add text transcript display mode
Aug 5, 2025
122fc78
Modify naming: transcription -> transcript
Aug 5, 2025
0a4e643
Modify transcript rendering mode popup style
Aug 5, 2025
5280723
[FEAT] ios agent list
Aug 6, 2025
a03f263
Redesign of Call Control Area UI
Aug 7, 2025
4a6f0f1
Add return click event
Aug 7, 2025
19866ab
Voiceprint callback
Aug 7, 2025
d90efe2
Bug fix
Aug 8, 2025
425ed69
Character information updated
Aug 11, 2025
b0acfa6
[FEAT] agent list data
Aug 11, 2025
52edbcc
[FIX] conflicts
Aug 11, 2025
f75e476
Open source request parameter, Optional extension
Aug 11, 2025
fcfe3e7
[FIX] custom agent save
Aug 11, 2025
f343ca0
Bug fix
Aug 11, 2025
bef3532
:[FIX] agent save
Aug 11, 2025
b8bcef8
Bugfix
Aug 11, 2025
fed6a80
Add refresh control
Aug 11, 2025
7805a78
Add local preset json
Aug 11, 2025
c2237b4
Code logic reuse
Aug 12, 2025
6b92c1e
Update KeyCenter.swift
Smaug-77 Aug 12, 2025
cb1d3d0
Compilation error
Aug 12, 2025
506919b
[Android]Update debugging.
Aug 12, 2025
2cd5aaa
Bugfix
Aug 12, 2025
5e7aa01
[Android]Add topic button.
Aug 12, 2025
eb63130
bug fix
Aug 12, 2025
8001cbe
[Android]Update empty image.
Aug 12, 2025
a17689c
Merge branch 'dev/1.8.1' of github.com:AgoraIO-Community/Conversation…
Aug 12, 2025
748276c
[Android]Update convoai api.
Aug 13, 2025
0a0bbb8
Add voiceprint api and sign up page
Aug 13, 2025
3014d19
[Android] Optimize bottom view in call screen.
Aug 13, 2025
6a55fe1
[Android] Optimize bottom view in call screen.
Aug 13, 2025
afc4c53
[Android]Update convoai api doc.
Aug 13, 2025
ee2d95a
Bug fix
Aug 13, 2025
2d1e1c2
Add empty picture resource
Aug 13, 2025
3a82834
Merge branch 'dev/1.8.1' of github.com:AgoraIO-Community/Conversation…
Aug 13, 2025
3c7d493
Bugfix
Aug 13, 2025
60cf993
[Android]Update convoai api.
Aug 14, 2025
32ee474
[Android]Remove long pressed.
Aug 14, 2025
c191a5b
Self-test question modification
Aug 14, 2025
7141c24
Update proj
Aug 14, 2025
5d9e730
Merge branch 'dev/1.8.1' of github.com:AgoraIO-Community/Conversation…
Aug 14, 2025
5cf38f3
bugfix
Aug 14, 2025
b02db8c
bugfix
Aug 14, 2025
a2d4ec6
[Android]Update ui.
Aug 15, 2025
f3add74
[Android]Update convoai api.
Aug 18, 2025
9e4196f
Update Convo AI API
Aug 18, 2025
1ead74b
Merge branch 'dev/1.8.1' of github.com:AgoraIO-Community/Conversation…
Aug 18, 2025
7ae8fca
[Android]fixs ui.
Aug 18, 2025
42b9f53
[Android]Update ui.
Aug 19, 2025
c98f088
[Android]Update login privacy policy ui.
Aug 19, 2025
87a0e8b
[FIX] ui bug
Aug 19, 2025
9478189
[Android]Update ui.
Aug 19, 2025
6a9c459
Merge branch 'dev/1.8.1' of github.com:AgoraIO-Community/Conversation…
Aug 19, 2025
1fcc651
[FIX] bugs
Aug 19, 2025
d774ccd
Merge branch 'dev/1.8.1' of github.com:AgoraIO-Community/Agora-AI-Sce…
Aug 19, 2025
63caf96
[Android]UI fixs
Aug 20, 2025
0e43ad5
[Android]Fixs
Aug 20, 2025
0da0722
[FIX] switcher color
Aug 20, 2025
75dc093
[Android]Reset render mode.
Aug 20, 2025
fffcbf5
[Android]fixs TEN-2633
Aug 21, 2025
727377c
[Android]Fixs default avatar.
Aug 21, 2025
47c7857
[FIX] ios avatar
Aug 21, 2025
1b9dbca
Merge branch 'dev/1.8.1' of github.com:AgoraIO-Community/Agora-AI-Sce…
Aug 21, 2025
40533b5
[FIX] ios slider pop
Aug 21, 2025
4e29b67
[FIX] segment ctrl
Aug 21, 2025
947fbe0
[FIX] message avatar ratio
Aug 21, 2025
8151c7b
[FIX] ios fix
Aug 21, 2025
7c16a36
[FIX] login page center
Aug 21, 2025
cedd705
[Android]Fixs ui.
Aug 22, 2025
ada4e06
[Android]Update open source.
Aug 22, 2025
55c7b58
[FIX] custom agent language
Aug 22, 2025
e39d7c3
[FIX] set default preset
Aug 22, 2025
c8221d2
[FIX] ios aivad
Aug 25, 2025
dae40fc
[FIX] clean token
Aug 25, 2025
dcf2ce7
[FEAT] ios open source readme
Aug 26, 2025
ec6d860
[FIX] ios text output
Aug 26, 2025
8162191
[FIX] aivad icon fill mode
Aug 26, 2025
28a80ca
[FEAT] ios api version
Aug 26, 2025
d64e0bd
[Android]Update env.
Aug 27, 2025
d135f75
[Android]Add voiceprint lock.
Aug 28, 2025
c140c7e
[Android]Add login privacy policy dialog.
Aug 28, 2025
f81ef60
[Android]Update agent info ui.
Aug 29, 2025
4405db1
Merge branch 'main' into dev/voiceprint_lock
Aug 29, 2025
6e5004f
Merge branch 'main' into dev/voiceprint_lock
Sep 1, 2025
11a7994
[Android]Add home ui logic.
Sep 1, 2025
99fff32
[Android]Upload voiceprint.
Sep 2, 2025
8bc02eb
[Android]Add voiceprint tag.
Sep 3, 2025
bfed06c
[Android]Update recording dialog.
Sep 3, 2025
59aa068
Merge branch 'main' into dev/voiceprint_lock
Sep 3, 2025
af7f52f
pod replace domestic mirror
Sep 3, 2025
3c6f62e
[Android] reorganize UI modules by feature domains.
Sep 4, 2025
edcbdd5
[Android] reorganize UI modules by feature domains.
Sep 4, 2025
bce8987
[Android]Add profile settings.
Sep 4, 2025
44351e4
[Android]Update ui.
Sep 5, 2025
50842d0
[Android]update debug.
Sep 5, 2025
01a11dc
[Android]Add profile ui.
Sep 5, 2025
1f63562
[Android]Add profile ui.
Sep 5, 2025
e0bbc8f
[FEAT] voice print ios
Sep 5, 2025
e1a855a
Merge branch 'dev/voiceprint_lock' of github.com:AgoraIO-Community/Ag…
Sep 5, 2025
d42fed4
[Android]Add TimeUtils. sync servertTime.
Sep 5, 2025
9d3b359
[FIX] ios bug fix
Sep 5, 2025
0883f43
[FIX] ios
Sep 5, 2025
0551a7e
Merge branch 'dev/voiceprint_lock' of github.com:AgoraIO-Community/Ag…
Sep 5, 2025
78f0970
[FIX] some bugs
Sep 5, 2025
373bd21
[Android]Fixs voiceprint recording.
Sep 5, 2025
5c82069
[FIX] ios fix
Sep 5, 2025
f7e0d1c
[FIX] ios fix
Sep 5, 2025
55f8104
Merge branch 'dev/voiceprint_lock' of github.com:AgoraIO-Community/Ag…
Sep 5, 2025
7235469
[FIX] check voice print upload
Sep 5, 2025
8296aec
Add personal report information display view
Sep 9, 2025
4e8d31d
[Android]Update voiceprint logic.
Sep 9, 2025
eb9d730
[Android]Add gender &&nickname logic.
Sep 10, 2025
4cc64ef
[Android]Add gender &&nickname logic.
Sep 10, 2025
b442b2e
Homepage Column View Redesign
Sep 10, 2025
675990e
Privacy page link updated
Sep 10, 2025
dbd6bb4
[Android]Add about me && select birthday logic.
Sep 11, 2025
af32a39
[Android]Update birthday dialog.
Sep 11, 2025
0610f01
[Android]AI avatar add categories.
Sep 11, 2025
3be807b
[Android]Add loading when load presets.
Sep 11, 2025
bc0eb5d
[Android]
Sep 12, 2025
5b7cdfa
[Android]Update ui.
Sep 12, 2025
76b54aa
[Android]fixs self-testing.
Sep 15, 2025
a2ff5c1
[Android]self-testing.
Sep 15, 2025
5b777b3
Bugfix
Sep 15, 2025
85610b7
Merge branch 'dev/voiceprint_lock' of github.com:AgoraIO-Community/Co…
Sep 15, 2025
67f6fbc
[Android]Fixs ui.
Sep 15, 2025
4b3454a
[FEAT] 1.8.0 ios
Sep 16, 2025
88a8aff
[FIX] ios localization
Sep 16, 2025
d807aa9
[FEAT] ios login
Sep 16, 2025
7afd79d
Add The onDebugLog Function
Sep 16, 2025
4e7dca9
Modify the method for determining the selected language item.
Sep 16, 2025
441a2a2
Merge branch 'dev/voiceprint_lock' of github.com:AgoraIO-Community/Co…
Sep 16, 2025
d3dad55
[Andrioid]Fix TEN-3024.
Sep 17, 2025
882c574
[Android]Fixs TEN-3042.
Sep 17, 2025
3b93e93
[FIX] bug fix
Sep 17, 2025
9226715
bugFix
Sep 18, 2025
7ea2b3a
[Android]Update transcript.
Sep 18, 2025
b4fb695
[Android]1.8.5 bugfixs.
Sep 18, 2025
f2a3ee5
[FIX] bug fix ios
Sep 18, 2025
6de6c99
Merge branch 'dev/voiceprint_lock' of github.com:AgoraIO-Community/Ag…
Sep 18, 2025
d31c1bd
[Android]common title bar.
Sep 19, 2025
1625432
[Android]common title bar.
Sep 19, 2025
d60ea0a
workaround TEN-2896.
Sep 19, 2025
ea10ae1
Bugfix
Sep 19, 2025
57fb0c2
Bugfix
Sep 19, 2025
e6a0bb9
Filter out cases where pts equals 0.
Sep 22, 2025
85d0f29
[Android]pts: Filter out values less than 0.
Sep 22, 2025
ec4638b
[Android]fixs TEN-3156.
Sep 23, 2025
ccfcc1b
[Android]Remove user profile ui.
Sep 23, 2025
dcd09b9
[Android]Update mine info ui.
Sep 23, 2025
072fb3d
[FIX] ios some ui bugs
Sep 23, 2025
4c210e6
[FIX] ios error
Sep 23, 2025
9ee9ef8
[FIX] ios some bugs
Sep 24, 2025
5bd7656
[Android]Add voiceprint is support.
Sep 25, 2025
8797096
[Android]Update agent setting ui.
Sep 25, 2025
b8f9a67
[Android]update debug
Sep 25, 2025
dec19d3
[FIX] ios enable sal
Sep 25, 2025
c5102fd
[Android] Transcript add real render mode.
Sep 25, 2025
8cc9bfb
Fix transcript loading bug
Sep 25, 2025
b5aef7a
[Android]bugfixs ui.
Sep 26, 2025
0df4b6d
[Android]Homepage: add tab transition animations.
Sep 28, 2025
7a6a5b8
[Android]Fixs ui.
Sep 28, 2025
e0e33dd
[Android]Ui.
Sep 28, 2025
8f6e0c3
[FIX] iOS bugs
Sep 28, 2025
126475f
[fix] ios fix
Sep 28, 2025
cb285d7
Merge branch 'dev/voiceprint_lock' of github.com:AgoraIO-Community/Ag…
Sep 28, 2025
53cae6d
[FIX] remove resource
Sep 28, 2025
0c38636
[Android]Update opensource.
Sep 29, 2025
2b5720e
[Android]filter transcript log.
Sep 29, 2025
5e8aac9
[FIX] api log filter
Sep 29, 2025
2c0a96d
[Android]Update opnesource.
Sep 29, 2025
9c3bd33
[Android]Fixs ui.
Sep 30, 2025
5760b9c
[Android]user info null pointer fallback.
Oct 9, 2025
16d8b7a
Fix open source issues
Oct 10, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
[Android]Update convoai api &&doc. TEN-2427
  • Loading branch information
zhangwei committed Aug 4, 2025
commit a86273d0804cfd1343cc0c0ee6d69cd76b6a1147
Original file line number Diff line number Diff line change
Expand Up @@ -356,7 +356,7 @@
android:id="@+id/tv_render_mode"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/common_debug_transcription_render_mode"
android:text="@string/common_debug_transcript_render_mode"
android:textColor="@color/ai_icontext1"
android:textSize="14sp"
android:layout_marginTop="10dp"
Expand Down
2 changes: 1 addition & 1 deletion Android/common/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<string name="common_debug_user_config">User Config</string>
<string name="common_debug_quick_setting_for_current_user">Quick Setting for Current User</string>
<string name="common_debug_click_to_copy">Copy to Clipboard</string>
<string name="common_debug_transcription_render_mode">Transcription Render Mode</string>
<string name="common_debug_transcript_render_mode">Transcript Render Mode</string>
<string name="common_debug_text_mode">Text</string>
<string name="common_debug_word_mode">Word</string>
<string name="common_debug_text_word_mode">Text-Word</string>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ import io.agora.rtm.PresenceEvent
import io.agora.rtm.RtmConstants
import io.agora.rtm.RtmEventListener
import io.agora.rtm.SubscribeOptions
import io.agora.scene.convoai.convoaiApi.subRender.v3.IConversationTranscriptionCallback
import io.agora.scene.convoai.convoaiApi.subRender.v3.IConversationTranscriptCallback
import io.agora.scene.convoai.convoaiApi.subRender.v3.MessageParser
import io.agora.scene.convoai.convoaiApi.subRender.v3.TranscriptionController
import io.agora.scene.convoai.convoaiApi.subRender.v3.TranscriptionConfig
import io.agora.scene.convoai.convoaiApi.subRender.v3.TranscriptController
import io.agora.scene.convoai.convoaiApi.subRender.v3.TranscriptConfig
import java.util.UUID

/**
Expand All @@ -29,9 +29,9 @@ import java.util.UUID
*
* Key responsibilities:
* - Manage RTM subscriptions and message routing
* - Parse and handle different message types (state, error, metrics, transcription)
* - Parse and handle different message types (state, error, metrics, transcript)
* - Configure audio parameters for optimal AI conversation quality
* - Coordinate with transcription rendering system
* - Coordinate with transcript rendering system
* - Provide thread-safe delegate notifications
*
* @see IConversationalAIAPI
Expand All @@ -40,7 +40,7 @@ class ConversationalAIAPIImpl(val config: ConversationalAIAPIConfig) : IConversa

private var mMessageParser = MessageParser()

private var transcriptionController: TranscriptionController
private var transcriptController: TranscriptController
private var channelName: String? = null

private val conversationalAIHandlerHelper = ObservableHelper<IConversationalAIAPIEventHandler>()
Expand Down Expand Up @@ -113,8 +113,8 @@ class ConversationalAIAPIImpl(val config: ConversationalAIAPIConfig) : IConversa
}

private fun dealMessageWithMap(publisherId: String, msg: Map<String, Any>) {
val transcriptionObj = msg["object"] as? String ?: return
val objectType = MessageType.fromValue(transcriptionObj)
val transcriptObj = msg["object"] as? String ?: return
val objectType = MessageType.fromValue(transcriptObj)
when (objectType) {
/**
* {object=message.metrics, module=tts, metric_name=ttfb, turn_id=4, latency_ms=182, data_type=message, message_id=2d7de2a2, send_ts=1749630519485}
Expand Down Expand Up @@ -248,14 +248,14 @@ class ConversationalAIAPIImpl(val config: ConversationalAIAPIConfig) : IConversa
}

init {
val transcriptionConfig = TranscriptionConfig(
val transcriptConfig = TranscriptConfig(
rtcEngine = config.rtcEngine,
rtmClient = config.rtmClient,
renderMode = if (config.renderMode == TranscriptionRenderMode.Word) TranscriptionRenderMode.Word else TranscriptionRenderMode.Text,
callback = object : IConversationTranscriptionCallback {
override fun onTranscriptionUpdated(agentUserId: String, transcription: Transcription) {
renderMode = if (config.renderMode == TranscriptRenderMode.Word) TranscriptRenderMode.Word else TranscriptRenderMode.Text,
callback = object : IConversationTranscriptCallback {
override fun onTranscriptUpdated(agentUserId: String, transcript: Transcript) {
conversationalAIHandlerHelper.notifyEventHandlers { delegate ->
delegate.onTranscriptionUpdated(agentUserId, transcription)
delegate.onTranscriptUpdated(agentUserId, transcript)
}
}

Expand All @@ -274,8 +274,8 @@ class ConversationalAIAPIImpl(val config: ConversationalAIAPIConfig) : IConversa
mMessageParser.onError = { message ->
callMessagePrint(TAG, message)
}
// Initialize transcription controller for transcription
transcriptionController = TranscriptionController(transcriptionConfig)
// Initialize transcript controller for transcript
transcriptController = TranscriptController(transcriptConfig)
// Register RTC event handler to receive audio/video events
config.rtcEngine.addHandler(covRtcHandler)
// Register RTM event listener to receive real-time messages
Expand All @@ -297,7 +297,7 @@ class ConversationalAIAPIImpl(val config: ConversationalAIAPIConfig) : IConversa
override fun subscribeMessage(channel: String, completion: (ConversationalAIAPIError?) -> Unit) {
val traceId = genTraceId
callMessagePrint(TAG, ">>> [traceId:$traceId] [subscribeMessage] $channel")
transcriptionController.reset()
transcriptController.reset()
channelName = channel
stateChangeEvent = null
val option = SubscribeOptions().apply {
Expand Down Expand Up @@ -329,7 +329,7 @@ class ConversationalAIAPIImpl(val config: ConversationalAIAPIConfig) : IConversa
channelName = null
val traceId = genTraceId
callMessagePrint(TAG, ">>> [traceId:$traceId] [unsubscribeMessage] $channel")
transcriptionController.reset()
transcriptController.reset()
config.rtmClient.unsubscribe(channel, object : ResultCallback<Void> {
override fun onSuccess(responseInfo: Void?) {
callMessagePrint(TAG, "<<< [traceId:$traceId] rtm unsubscribe onSuccess")
Expand Down Expand Up @@ -540,7 +540,7 @@ class ConversationalAIAPIImpl(val config: ConversationalAIAPIConfig) : IConversa
config.rtcEngine.removeHandler(covRtcHandler)
config.rtmClient.removeEventListener(covRtmMsgProxy)
conversationalAIHandlerHelper.unSubscribeAll()
transcriptionController.release()
transcriptController.release()
}

// set audio config parameters
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -335,18 +335,18 @@ data class ModuleError(
*
* Used to distinguish different types of messages in the system.
*
* @property ASSISTANT AI assistant transcription message
* @property USER User transcription message
* @property ASSISTANT AI assistant transcript message
* @property USER User transcript message
* @property ERROR Error message
* @property METRICS Performance metrics message
* @property INTERRUPT Interrupt message
* @property UNKNOWN Unknown type
*/
enum class MessageType(val value: String) {
/** AI assistant transcription message */
/** AI assistant transcript message */
ASSISTANT("assistant.transcription"),

/** User transcription message */
/** User transcript message */
USER("user.transcription"),

/** Error message */
Expand Down Expand Up @@ -377,71 +377,71 @@ enum class MessageType(val value: String) {
}

/**
* Defines different modes for transcription rendering.
* Defines different modes for transcript rendering.
*
* @property Word Word-by-word transcriptions are rendered.
* @property Text Full text transcriptions are rendered.
* @property Word Word-by-word transcripts are rendered.
* @property Text Full text transcripts are rendered.
*/
enum class TranscriptionRenderMode {
/** Word-by-word transcription rendering */
enum class TranscriptRenderMode {
/** Word-by-word transcript rendering */
Word,

/** Full text transcription rendering */
/** Full text transcript rendering */
Text
}

/**
* Data class representing a complete transcription message for UI rendering.
* Data class representing a complete transcript message for UI rendering.
*
* @property turnId Unique identifier for the conversation turn
* @property userId User identifier associated with this transcription
* @property text The actual transcription text content
* @property status Current status of the transcription
* @property type Transcription type (AGENT/USER)
* @property userId User identifier associated with this transcript
* @property text The actual transcript text content
* @property status Current status of the transcript
* @property type transcript type (AGENT/USER)
*/
data class Transcription constructor(
data class Transcript constructor(
/** Unique identifier for the conversation turn */
val turnId: Long,
/** User identifier associated with this transcription */
/** User identifier associated with this transcript */
val userId: String = "",
/** The actual transcription text content */
/** The actual transcript text content */
val text: String,
/** Current status of the transcription */
var status: TranscriptionStatus,
/** Transcription type (AGENT/USER) */
var type: TranscriptionType,
/** Current status of the transcript */
var status: TranscriptStatus,
/** transcript type (AGENT/USER) */
var type: TranscriptType,
)

/**
* Transcription type enum.
* Transcript type enum.
*
* @property AGENT AI assistant transcription
* @property USER User transcription
* @property AGENT AI assistant transcript
* @property USER User transcript
*/
enum class TranscriptionType {
/** AI assistant transcription */
enum class TranscriptType {
/** AI assistant transcript */
AGENT,

/** User transcription */
/** User transcript */
USER
}

/**
* Represents the current status of a transcription.
* Represents the current status of a transcript.
*
* @property IN_PROGRESS Transcription is still being generated or spoken
* @property END Transcription has completed normally
* @property INTERRUPTED Transcription was interrupted before completion
* @property IN_PROGRESS transcript is still being generated or spoken
* @property END transcript has completed normally
* @property INTERRUPTED transcript was interrupted before completion
* @property UNKNOWN Unknown status
*/
enum class TranscriptionStatus {
/** Transcription is still being generated or spoken */
enum class TranscriptStatus {
/** transcript is still being generated or spoken */
IN_PROGRESS,

/** Transcription has completed normally */
/** transcript has completed normally */
END,

/** Transcription was interrupted before completion */
/** transcript was interrupted before completion */
INTERRUPTED,

/** Unknown status */
Expand All @@ -453,20 +453,20 @@ enum class TranscriptionStatus {
*
* Contains the necessary configuration parameters to initialize the Conversational AI API.
* This configuration includes RTC engine for audio communication, RTM client for messaging,
* and transcription rendering mode settings.
* and transcript rendering mode settings.
*
* @property rtcEngine RTC engine instance for audio/video communication
* @property rtmClient RTM client instance for real-time messaging
* @property renderMode Transcription rendering mode (Word or Text level)
* @property renderMode transcript rendering mode (Word or Text level)
* @property enableLog Whether to enable logging (default: true). When set to true, logs will be written to the RTC SDK log file.
*/
data class ConversationalAIAPIConfig(
/** RTC engine instance for audio/video communication */
val rtcEngine: RtcEngine,
/** RTM client instance for real-time messaging */
val rtmClient: RtmClient,
/** Transcription rendering mode, default is word-level */
val renderMode: TranscriptionRenderMode = TranscriptionRenderMode.Word,
/** transcript rendering mode, default is word-level */
val renderMode: TranscriptRenderMode = TranscriptRenderMode.Word,
/** Whether to enable logging, default is true. When true, logs will be written to the RTC SDK log file. */
val enableLog: Boolean = true
)
Expand Down Expand Up @@ -513,10 +513,10 @@ sealed class ConversationalAIAPIError : Exception() {
/**
* Conversational AI API event handler interface.
*
* Implement this interface to receive AI conversation events such as state changes, transcriptions, errors, and metrics.
* Implement this interface to receive AI conversation events such as state changes, transcripts, errors, and metrics.
* All callbacks are invoked on the main thread for UI updates.
*
* @note Some callbacks (such as onTranscriptionUpdated) may be triggered at high frequency for reliability. If your business requires deduplication, please handle it at the business layer.
* @note Some callbacks (such as onTranscriptUpdated) may be triggered at high frequency for reliability. If your business requires deduplication, please handle it at the business layer.
*/
interface IConversationalAIAPIEventHandler {
/**
Expand Down Expand Up @@ -564,12 +564,12 @@ interface IConversationalAIAPIEventHandler {
fun onMessageReceiptUpdated(agentUserId: String, receipt: MessageReceipt)

/**
* Called when transcription content is updated.
* Called when transcript content is updated.
* @param agentUserId Agent user ID
* @param transcription Transcription data
* @param transcript transcript data
* @note This callback may be triggered at high frequency. If you need to deduplicate, please handle it at the business layer.
*/
fun onTranscriptionUpdated(agentUserId: String, transcription: Transcription)
fun onTranscriptUpdated(agentUserId: String, transcript: Transcript)

/**
* Called for internal debug logs.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ Follow these steps to quickly integrate and use the ConversationalAI API:
val config = ConversationalAIAPIConfig(
rtcEngine = rtcEngineInstance,
rtmClient = rtmClientInstance,
renderMode = TranscriptionRenderMode.Word, // or TranscriptionRenderMode.Text
renderMode = TranscriptRenderMode.Word, // or TranscriptRenderMode.Text
enableLog = true
)
```
Expand All @@ -47,7 +47,7 @@ Follow these steps to quickly integrate and use the ConversationalAI API:

3. **Register an event handler**

Implement and add your event handler to receive agent events and transcriptions:
Implement and add your event handler to receive agent events and transcripts:
```kotlin
api.addHandler(object : IConversationalAIAPIEventHandler {
override fun onAgentStateChanged(agentUserId: String, event: StateChangeEvent) { /* ... */ }
Expand All @@ -56,7 +56,7 @@ Follow these steps to quickly integrate and use the ConversationalAI API:
override fun onAgentError(agentUserId: String, error: ModuleError) { /* ... */ }
override fun onMessageError(agentUserId: String, error: MessageError) { /* ... */ }
override fun onMessageReceiptUpdated(agentUserId: String, receipt: MessageReceipt) { /* ... */ }
override fun onTranscriptionUpdated(agentUserId: String, transcription: Transcription) { /* ... */ }
override fun onTranscriptUpdated(agentUserId: String, transcript: Transcript) { /* ... */ }
override fun onDebugLog(log: String) { /* ... */ }
})
```
Expand Down Expand Up @@ -288,8 +288,8 @@ override fun onMessageError(agentUserId: String, error: MessageError) {
- [ConversationalAIAPIImpl.kt](./ConversationalAIAPIImpl.kt) — Main implementation of the ConversationalAI API logic
- [ConversationalAIUtils.kt](./ConversationalAIUtils.kt) — Utility functions and event handler management
- [subRender/](./subRender/)
- [v3/](./subRender/v3/) — Transcription module
- [TranscriptionController.kt](./subRender/v3/TranscriptionController.kt)
- [v3/](./subRender/v3/) — transcript module
- [TranscriptController.kt](./subRender/v3/TranscriptController.kt)
- [MessageParser.kt](./subRender/v3/MessageParser.kt)

> The above files and folders are all you need to integrate the ConversationalAI API. No other files are required.
Expand Down
Loading