說明
Hi,您好,歡迎使用有道智云作文批改Android SDK。
本文檔主要針對需要集成 作文批改 Android SDK的開發(fā)工程師,詳細描述作文批改能力及集成過程。
如果您有與我們商務合作的需求,可以通過以下方式聯(lián)系我們:
商務郵箱: AIcloud_Business@corp.youdao.com
如果您對文檔內(nèi)容有任何疑問,可以通過以下幾種方式聯(lián)系我們:
客服QQ:1906538062
智云語音技術交流QQ群:861723255
聯(lián)系郵箱: zhiyun@corp.youdao.com
溫馨提示:
本文檔主要針對開發(fā)人員,接入測試前需要在后臺創(chuàng)建 Android 應用,并綁定服務;如果您還沒有,請按照 新手指南 操作。
平臺向每個賬戶贈送50元的體驗金,供用戶集成前測試所用,具體資費規(guī)則詳見 作文批改服務報價 。
作文批改安卓sdk 是有道智云開放平臺提供的云服務之一,是有道作文批改接口的一種實現(xiàn),支持中英,圖片和文本兩種模式。
共有中英圖文類型4個接口。
圖像類型:
圖像數(shù)據(jù) => 轉換成Base64編碼 => 網(wǎng)絡請求 => 返回結果
文本類型:
文本數(shù)據(jù) => 網(wǎng)絡請求 => 返回結果
支持設備:運行了 Android 9及以上系統(tǒng)的 Android 設備
開始集成SDK之前開發(fā)者需要登錄 有道智云平臺 ,創(chuàng)建應用獲取應用ID(或者通過運營人員獲取應用ID),以便使用作文批改服務。
根據(jù)官網(wǎng)控制臺 提示,直接下載SDK,SDK中包含簡易可運行的Demo。如下圖所示:
lib目錄下為作文批改sdk所需的jar包和so文件
android_demo_composition_correction 為作文批改的demo
接入文檔和demo運行需要修改位置的Readme.txt
1.使用AndroidStudio 導入項目
2.
打開Redame.txt,按步驟修改demo即可
1.修改Appkey和AppSecret
2.build.gradle 修成為自己Appkey所對應的包名
3.修改完成之后,連接設備就可以運行了
請在工程文件根目錄下創(chuàng)建一個名為 lib的子目錄(有的話則不需要創(chuàng)建),把和對應jar包、so文件拷貝到lib文件夾下,并將以下代碼添加到app的build.gradle中:
android {
...
sourceSets {
main {
jniLibs.srcDirs = ['lib']
}
}
}
dependencies {
//base
implementation files('lib/YoudaoBase_v20230209.jar')
//認證
implementation files('lib/online_auth.jar')
//作文批改
implementation files('lib/compositioncorrection_v20230209.jar')
//json解析及網(wǎng)絡請求
implementation "com.google.code.gson:gson:2.8.5"
implementation "com.squareup.okhttp3:okhttp:4.9.3"
}
具體版本號參考智云給的lib包
使用作文批改SDK,請在程序的Application中調用SDK初始化代碼,可以參考demo中MyApplication
注:appKey即應用id 。sdk請使用sdk類型的appkey
//TODO 修改成智云官網(wǎng)申請的AppKey和AppSecret
private val MY_APP_KEY = ""
private val appSecret = ""
override fun onCreate() {
super.onCreate()
YouDaoApplication.init(this,MY_APP_KEY,appSecret)
}
CompositionCorrection.correctionChineseImage(
input =imageBase64, //需要批改的圖片的base64字符串
listener= object : CorrectListener { //批改作文的回調接口 成功或者失敗
override fun onError(errorCode: Int?, msg: String?, requestId: String?) {
Log.e(TAG, "onError: errorCode:$errorCode,msg:$msg,requestId:$requestId", )
}
override fun onResult(result: Serializable, requestId: String) {
runOnUiThread {
startActivity(Intent(this@ChineseImageActivity, CorrectResultActivity::class.java).apply {
putExtra("result",result as Serializable)
putExtra("type","ch_image")
})
}
}
},
grade = grade,//作文等級
title = title,//作文標題
requirement= requirement, //題目要求
)
返回結果釋義詳見API文檔:中文作文批改—圖像
CompositionCorrection.correctionChineseText(
input = CH_TEXT_TEST_DATA, //需要批改文本
grade = grade,//作文等級
title = title,//作文標題
requirement= requirement, //題目要求
listener= object : CorrectListener {//批改作文的回調接口 成功或者失敗
override fun onError(errorCode: Int?, msg: String?, requestId: String?) {
Log.e(Companion.TAG, "onError: errorCode:$errorCode,msg:$msg,requestId:$requestId", )
}
override fun onResult(result: Serializable, requestId: String) {
runOnUiThread {
startActivity(Intent(this@ChineseTextActivity,CorrectResultActivity::class.java).apply {
putExtra("result",result as Serializable)
putExtra("type","ch_text")
})
}
}
}
)
返回結果釋義詳見API文檔:中文作文批改—文本
CompositionCorrection.correctionEnglishText(
input = EN_TEXT_TEST_DATA, //需要批改的圖片的base64字符串
grade = grade,//作文等級
title = title ,//作文標題
isNeedSynonyms=binding.cbIsNeedSynonyms.isChecked, //是否查詢同義詞
correctVersion = correctVersion, //作文批改版本:基礎,高級
isNeedEssayReport = binding.cbIsNeedEssayReport.isChecked, //是否返回寫作報告(essayReport字段,僅在高級批改時生效)
listener= object : CorrectListener { //批改作文的回調接口 成功或者失敗
override fun onError(errorCode: Int?, msg: String?, requestId: String?) {
Log.e(TAG, "onError: errorCode:$errorCode,msg:$msg,requestId:$requestId", )
}
override fun onResult(result: Serializable, requestId: String) {
runOnUiThread {
startActivity(Intent(this@EnglishTextActivity,CorrectResultActivity::class.java).apply {
putExtra("result",result )
putExtra("type","en_text")
})
}
}
}
)
返回結果:英語作文批改(文本輸入)
CompositionCorrection.correctionEnglishImage(
input =imageBase64, //需要批改文本
grade = grade,//作文等級
title = title ,//作文標題
isNeedSynonyms=binding.cbIsNeedSynonyms.isChecked, //是否查詢同義詞
correctVersion = correctVersion, //作文批改版本:基礎,高級
isNeedEssayReport = binding.cbIsNeedEssayReport.isChecked, //是否返回寫作報告(essayReport字段,僅在高級批改時生效)
listener= object : CorrectListener { //批改作文的回調接口 成功或者失敗
override fun onError(errorCode: Int?, msg: String?, requestId: String?) {
Log.e(TAG, "onError: errorCode:$errorCode,msg:$msg,requestId:$requestId", )
}
override fun onResult(result: Serializable, requestId: String) {
runOnUiThread {
startActivity(Intent(this@EnglishImageActivity, CorrectResultActivity::class.java).apply {
putExtra("result",result )
putExtra("type","en_image")
})
}
}
}
)
返回結果:
錯誤碼請參考API文檔