마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

앱이 실행이되지않습니다.

0 추천

 

//여기 수정하는거 맞나요?????????

최고가되고싶은개발자 (400 포인트) 님이 2020년 11월 2일 질문
최고가되고싶은개발자님이 2020년 11월 2일 수정

2개의 답변

+1 추천
 
채택된 답변

세션을 생성하신다는 말이 정확히 어떤 의미이신지? 제가 왓슨 앱을 테스트 해보니 이미지인식 서비스를 세팅하지 않으면 텍스트만 받을 수 있는 것 같네요. 텍스트는 잘 받아지네요.

spark (227,470 포인트) 님이 2020년 11월 2일 답변
최고가되고싶은개발자님이 2020년 11월 4일 채택됨
왓슨 샘플앱에 세션을 생성하는 부분이 있네요.

private void makeChatApiRequest(final String enteredMessage) {
        Thread thread = new Thread(new Runnable() {
            public void run() {
                try {
                    if (watsonAssistantSession == null) {
                        ServiceCall<SessionResponse> call = watsonAssistant.createSession(new CreateSessionOptions.Builder().assistantId(getString(R.string.assistant_id)).build());
                        watsonAssistantSession = call.execute();
                    }

                    MessageInput input = MessageUtils.buildMessageInput(enteredMessage);
                    MessageOptions options = buildMessageOptions(input);

                    Response<MessageResponse> response = watsonAssistant.message(options).execute();
                    Log.i(TAG, "run: " + response.getResult());

                    if (responseNullOrEmpty(response)) return;

                    handleApiResponse(response);

                    updateChatMessages();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });

        thread.start();
    }
엇 그러네요!!

근데왜 앱은 실행이되는데 watson이 대답을하지않는걸까요...
+1 추천

몇가지 해야 될 작업이 있더라구요. 이미 되어 있을 수도 있는데요. 왓슨 샘플앱을 코드를 사용하신다면 코드는 굳이 안건드리셔도 될 것 같구요. config.xml에 왓슨 API를 사용하기 위한 설정들이 있습니다. 

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <!--Watson Assistant service credentials-->
    <!-- REPLACE `ASSISTANT_ID_HERE` with ID of the Assistant to use -->
    <string name="assistant_id">xxxx</string>

    <!-- REPLACE `ASSISTANT_API_KEY_HERE` with Watson Assistant service API Key-->
    <string name="assistant_apikey">xxxxx</string>

    <!-- The URL provided below is for DALLAS region/location -->
    <!-- If the Assistant service is created in another region/lpcation -->
    <!-- REPLACE the URL with the one provided in the credentials of the service you created-->
    <string name="assistant_url">xxxx</string>

</resources>

IMB cloud에 로그인 하셔서 assistant_id, assistant_apikey, assistant_url을 찾으셔서 해당 항목을 업데이트 해주셔야 해요.

IMB cloud login > Resource list 
 - Services > Watson Assistant-nx

Watson Assistant-nx를 클릭하시면  해당 서비스 관리 페이지가 열리구요. 여기에 API key URL이 있습니다. 만약을 위해서 다운로드 버튼 누르셔서 다운로드 받으세요. ibm-credentials.env 파일이 다운받아 질겁니다. 이 파일에사 API Key랑 service url을 찾아서 config.xml을 업데이트 하세요.

assistant_id는 좀 찾기가 어렵더라구요. 스택오브플로우에서 답을 찾았구요.

https://stackoverflow.com/questions/53269368/ibm-cloud-watson-assistant-how-to-get-the-id-of-a-workspace

위의 매니저 페이지에서 "Launch Watson Assistant" 버튼을 누르셔서 Watson Assistant  페이지로 이동하신 다음,

Settings 를 누르세요. 그리고 API details를 누르시면 Assistant ID를 카피하셔서 config.xml에 넣어주시면 됩니다.

그리고 혹시나 안되실 경우에는 IBM_CREDENTIALS_FILE 환경변수를 님의 시스템에 만드신 다음  위에서 다운받으신 ibm-credentials.env 파일이 있는 경로로 설정하세요.

그리고 혹 TTS, SST에러가 나시면 그건 IBM Cloud에 해당 서비스가 없어서 나는 에러이니 Watson API 처럼 IBM cloud에 등록하고 config.xml을 해당 서비스의 값으로 업데이트 해주세요. 저는 이렇게 해서 됐습니다.

spark (227,470 포인트) 님이 2020년 11월 2일 답변
http://www.masterqna.com/android/?qa=blob&qa_blobid=9193271242135540884

와 감사합니다 !!!!!!!!!!!!!!!!!됩니다 ㅎㅎㅎㅎㅎㅎㅎ 진짜 고생많으셨습니다 ㅜㅠㅜ
...