Aispeech 기반 스마트 대화 앱 (5) - 지정 의도 트리거, 사용자 어고 기능 구현
지 정 된 의 도 를 촉발 하 다
의도 적 인 대 화 를 주동 적 으로 촉발 하 기 를 원한 다 면 필요 할 때 아래 인 터 페 이 스 를 호출 할 수 있 습 니 다.
매개 변수 설명:
1) skill 스 킬 명칭, 필수.2) task 퀘 스 트 이름, 필수.3) intent 의도 이름, 필수.4) slots 의미 슬롯 의 key - value JSon 을 선택 할 수 있 습 니 다.
triggerIntent
// , 。 :DDS 。
DDS.getInstance().getAgent().triggerIntent(" ", " ", " ", new JSONObject().put(" ", " ").put(" ", " ").toString());
skillid 트리거 의도:
SkillIntent skillIntent = new SkillIntent(" id",
" ", " ",
new JSONObject().put(" ", " ").put(" ", " ").toString());
DDS.getInstance().getAgent().triggerIntent(skillIntent);
1.1 장치 상태 업데이트
장치 상태 코드 업데이트:
// sys.upload.result
public void updateProductContext1() {
//
ContextIntent intent2 = new ContextIntent("status","{\"platform\":\"open\"}");
try {
DDS.getInstance().getAgent().updateProductContext(intent2);
toMain();
} catch (DDSNotInitCompleteException e) {
e.printStackTrace();
}
}
// sys.upload.result
public void updateProductContext2() {
//
ContextIntent intent2 = new ContextIntent("status","{\"platform\":\"closed\"}");
try {
DDS.getInstance().getAgent().updateProductContext(intent2);
toMain();
} catch (DDSNotInitCompleteException e) {
e.printStackTrace();
}
}
1.2 스 킬 설정 업데이트
스 킬 설정 코드 업데이트:
public void updateSkillContext1() {
ContextIntent intent2 = new ContextIntent("status","{\"platform\":\"Android\"}");
intent2.setSkillId("2019062000000368");
try {
DDS.getInstance().getAgent().updateSkillContext(intent2);
toMain();
} catch (DDSNotInitCompleteException e) {
e.printStackTrace();
}
}
public void updateSkillContext2() {
ContextIntent intent2 = new ContextIntent("status","{\"platform\":\"iOS\"}");
intent2.setSkillId("2019062000000368");
try {
DDS.getInstance().getAgent().updateSkillContext(intent2);
toMain();
} catch (DDSNotInitCompleteException e) {
e.printStackTrace();
}
}
1.3 설정 정보 업데이트
설정 정보 코드 업데이트:
public void getProductContext() {
try {
DDS.getInstance().getAgent().getProductContext("status");
Log.e(TAG,"productContext:"+DDS.getInstance().getAgent().getProductContext("status"));
} catch (DDSNotInitCompleteException e) {
e.printStackTrace();
}
}
public void getSkillContext() {
try {
DDS.getInstance().getAgent().getSkillContext("2019062000000368", "status");
Log.d(TAG,"skillContext:"+DDS.getInstance().getAgent().getSkillContext("2019062000000368", "status"));
} catch (DDSNotInitCompleteException e) {
e.printStackTrace();
}
}
1.4 업데이트
키워드 정보 코드 업데이트:
public void updatePhraseHints() {
// airobot
PhraseHintsIntent intent = new PhraseHintsIntent();
intent.setType("vocab");
intent.setName("sys. ");
intent.addData(" ");
intent.addData(" ");
try {
DDS.getInstance().getAgent().updatePhraseHints(intent);
toMain();
} catch (DDSNotInitCompleteException e) {
e.printStackTrace();
}
}
public void clearPhraseHints() {
try {
DDS.getInstance().getAgent().updatePhraseHints();
toMain();
} catch (DDSNotInitCompleteException e) {
e.printStackTrace();
}
}
사용자 어고 업데이트
사용자 의 어 고 를 업데이트 하고 기능 에서 사용 할 수 있 도록 하려 면 필요 할 때 아래 인 터 페 이 스 를 호출 할 수 있 습 니 다.업로드 결 과 는 sys. upload. result 메 시 지 를 통 해 얻 을 수 있 습 니 다.
메모: 업 데 이 트 된 어 고 는 이 장치 에서 만 유효 하 며 다른 장치 에 영향 을 주지 않 습 니 다.매개 변수 설명: vocbIntent: 어고 intent.단어 라 이브 러 리 이름 name, 동작 action, 단어 목록 contents 를 포함 합 니 다.주 1: 단어 라 이브 러 리 이름 이 sys. 연락처 라면 자동 으로 단어 처 리 를 합 니 다.주 2: 동의어 가 있 는 단 어 를 업로드 하려 면 다음 과 같은 형식 을 사용 하 십시오. "단어 값: {단어 값 추출}: 단어 값 추출: {동의어 1}, ${동의어 2}"반환 값: 요청 ID, sys. upload. result 추적 에 사용 합 니 다.
updateVocabs
//
/*
//
DDS.getInstance().getAgent().updateVocab(" ", new String[]{" ", " : ", " : , "}, true);
DDS.getInstance().getAgent().updateVocab("sys. ", new String[]{" ", " "}, true);
//
DDS.getInstance().getAgent().updateVocab(" ", new String[]{" ", " : , "}, false);
//
DDS.getInstance().getAgent().updateVocab(" ", null, false);
*/
//
final String reqId = DDS.getInstance().getAgent().updateVocabs(
new VocabIntent()
.setName(" ")
.setAction(VocabIntent.ACTION_INSERT)
.setContents(Arrays.asList(" ", " : , "))
);
// ,
DDS.getInstance().getAgent().updateVocabs(
new VocabIntent()
.setName(" ")
.setAction(VocabIntent.ACTION_CLEAR_AND_INSERT)
.setContents(Arrays.asList(" ", " : "))
);
//
DDS.getInstance().getAgent().updateVocabs(
new VocabIntent()
.setName(" ")
.setAction(VocabIntent.ACTION_REMOVE)
.addContent(" ")
);
//
DDS.getInstance().getAgent().updateVocabs(
new VocabIntent()
.setName(" ")
.setAction(VocabIntent.ACTION_CLEAR_ALL)
);
//
DDS.getInstance().getAgent().updateVocabs(
//
new VocabIntent()
.setName("sys. ")
.setAction(VocabIntent.ACTION_INSERT)
.addContent(" ")
.addContent(" "),
// ,
new VocabIntent()
.setName(" ")
.setAction(VocabIntent.ACTION_CLEAR_AND_INSERT)
.setContents(Arrays.asList(" ", " : ")),
//
new VocabIntent()
.setName(" ")
.setAction(VocabIntent.ACTION_REMOVE)
.addContent(" "),
//
new VocabIntent()
.setName(" ")
.setAction(VocabIntent.ACTION_CLEAR_ALL)
);
//
DDS.getInstance().getAgent().subscribe("sys.upload.result", new MessageObserver() {
@Override
public void onMessage(String message, String data) {
Log.e(TAG, message + ":" + data);
try {
JSONObject obj = new JSONObject(data);
if (reqId.equals(obj.optString("reqId", ""))) {
Log.d(TAG, "updateVocabs result:" + obj.optBoolean("result", false));
}
} catch (JSONException e) {
e.printStackTrace();
}
}
});
2.1 로 컬 추가 단어
로 컬 추가 단어 코드:
public void addVocabCloud(){
try {
final String reqId = DDS.getInstance().getAgent().updateVocabs(
new VocabIntent()
.setName(" ")
.setAction(VocabIntent.ACTION_INSERT)
.setContents(Arrays.asList(" ", " "))
);
Log.e("xlg","reqId:"+reqId);
} catch (DDSNotInitCompleteException e) {
e.printStackTrace();
}
}
2.2 로 컬 비우 기 및 단어 추가
로 컬 비우 기 및 단어 코드 추가:
public void clearAndInsertVocab() {
// ,
try {
DDS.getInstance().getAgent().updateVocabs(
new VocabIntent()
.setName(" ")
.setAction(VocabIntent.ACTION_CLEAR_AND_INSERT)
.setContents(Arrays.asList(" ", " "))
);
toMain();
} catch (DDSNotInitCompleteException e) {
e.printStackTrace();
}
}
2.3 로 컬 삭제 단어
로 컬 삭제 코드:
public void removeVocab() {
//
try {
DDS.getInstance().getAgent().updateVocabs(
new VocabIntent()
.setName(" ")
.setAction(VocabIntent.ACTION_REMOVE)
.addContent(" ")
);
toMain();
} catch (DDSNotInitCompleteException e) {
e.printStackTrace();
}
}
public void removeVocab1() {
//
try {
DDS.getInstance().getAgent().updateVocabs(
new VocabIntent()
.setName(" ")
.setAction(VocabIntent.ACTION_REMOVE)
.addContent(" ")
);
toMain();
} catch (DDSNotInitCompleteException e) {
e.printStackTrace();
}
}
public void removeVocab2() {
//
try {
DDS.getInstance().getAgent().updateVocabs(
new VocabIntent()
.setName(" ")
.setAction(VocabIntent.ACTION_REMOVE)
.addContent(" ")
);
toMain();
} catch (DDSNotInitCompleteException e) {
e.printStackTrace();
}
}
비우 기
로 컬 빈 단어 코드:
public void clearAllVocab() {
try {
DDS.getInstance().getAgent().updateVocabs(
new VocabIntent()
.setName(" ")
.setAction(VocabIntent.ACTION_CLEAR_ALL)
);
toMain();
} catch (DDSNotInitCompleteException e) {
e.printStackTrace();
}
}
2.5 구름 끝
클 라 우 드 에 단어 코드 추가:
public void addVocabCloud(){
try {
final String reqId = DDS.getInstance().getAgent().updateVocabs(
new VocabIntent()
.setName(" ")
.setAction(VocabIntent.ACTION_INSERT)
.setContents(Arrays.asList(" ", " "))
);
Log.e("xlg","reqId:"+reqId);
} catch (DDSNotInitCompleteException e) {
e.printStackTrace();
}
}
2.6 구름 위 를 비우 고 단어 추가
클 라 우 드 를 비우 고 단어 코드 를 추가 합 니 다:
public void clearAndInsertVocabCloud() {
// ,
try {
DDS.getInstance().getAgent().updateVocabs(
new VocabIntent()
.setName(" ")
.setAction(VocabIntent.ACTION_CLEAR_AND_INSERT)
.setContents(Arrays.asList(" "))
);
toMain();
} catch (DDSNotInitCompleteException e) {
e.printStackTrace();
}
}
2.7 구름 끝
클 라 우 드 에서 단어 코드 삭제:
public void removeVocabCloud() {
//
try {
DDS.getInstance().getAgent().updateVocabs(
new VocabIntent()
.setName(" ")
.setAction(VocabIntent.ACTION_REMOVE)
.addContent(" ")
.addContent(" ")
);
toMain();
} catch (DDSNotInitCompleteException e) {
e.printStackTrace();
}
}
2. 구름 위 비우 기
클 라 우 드 삭제 단어 코드:
public void clearAllVocabCloud() {
try {
DDS.getInstance().getAgent().updateVocabs(
new VocabIntent()
.setName(" ")
.setAction(VocabIntent.ACTION_CLEAR_ALL)
);
toMain();
} catch (DDSNotInitCompleteException e) {
e.printStackTrace();
}
}
2.9 어고 일괄 업데이트
어고 코드 일괄 업데이트:
public void updateVocabs() {
//
try {
DDS.getInstance().getAgent().updateVocabs(
//
new VocabIntent()
.setName("sys. ")
.setAction(VocabIntent.ACTION_INSERT)
.addContent(" ")
.addContent(" "),
// ,
new VocabIntent()
.setName("sys. ")
.setAction(VocabIntent.ACTION_CLEAR_AND_INSERT)
.setContents(Arrays.asList(" ", " : ")),
//
new VocabIntent()
.setName(" ")
.setAction(VocabIntent.ACTION_CLEAR_AND_INSERT)
.addContent(" "),
//
new VocabIntent()
.setName(" ")
.setAction(VocabIntent.ACTION_CLEAR_ALL)
);
toMain();
} catch (DDSNotInitCompleteException e) {
e.printStackTrace();
}
}
코드 다운로드
문제 가 해결 되 지 않 거나 코드 에 관심 이 있 는 파트너 는 DUIdemo 2.5. zip 를 직접 다운로드 할 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
안 드 로 이 드 에 서 는 포 장 된 데이터베이스 작업 도구 류 를 포함 하여 GreenDAO 데이터베이스 프레임 워 크 를 도입 합 니 다.1. 프로젝트 설정 . / src / main 디 렉 터 리 아래 자바 와 같은 등급 의 자바 - gen 폴 더 를 만 듭 니 다. 2. build. gradle 에 설정 3. 의존 도 추가 4. 간단 한 조작 을 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.