[Azure] Azure AI 언어를 사용하여 질문 답변 솔루션 만들기

이강혁·2024년 6월 27일
0

Azure

목록 보기
2/2

Azure AI 언어 서비스의 질문 응답 기능을 사용하면 사용자가 자연어를 사용하여 질문하고 적절한 답변을 받는 애플리케이션을 만들어보는 과정이다. 미리 자료를 주어서 학습시켜서 그거에 대한 질문과 응답을 만들어주는 것도 할 수 있다.

리소스 구성하기


Azure 포털에서 "Azure AI Services"를 검색해서 언어 서비스를 선택한 뒤에 리소스를 만들어줬다.


이 때 사용자 지정 질문 답변은 선택해준다.

그러고 나서 Azure Language Studio에 접속해서 Create new를 선택해준다.

여기서 3번째 것 선택해줬고, 만들어지면 새 프로젝트를 만드는 곳에 가서

언어는 한국어로 하고 프로젝트 이름과 설명, 답 없을 때 메시지를 설정했다.

소스 관리하기

학습에 사용할 소스를 입력해줬는데, 랩에서는
https://docs.microsoft.com/en-us/learn/support/faq
를 입력하라고 했으나, 나는 한국어로 진행할 것이기에
https://docs.microsoft.com/ko-kr/learn/support/faq
를 넣어줬다.


Chit chat은 Friendly로 하라고 했는데 어떤 차이가 있는지는 연구해봐야겠다.

질문 답변 만들기


Edit knowledge base 페이지에서는 질문과 답변을 추가할 수 있따.
Add alternate question에서는 비슷한 질문을 추가할 수 있고,
Follow up prompts에서는 더 알아보려면 클릭 같은 메시지를 추가할 수 있다.
이 작업이 끝나면 저장을 하고 테스트를 할 수 있다.

배포하기


Deploy Knowledge base 페이지로 가서 배포해주면 끝난다.

Vscode에서 다루기

환경 설정

gitclone으로 mslearn-ai-language의 레포지토리를 복사해준다.

그리고 다음 모듈이 필요하다.

pip install azure-ai-language-questionanswering

Labfiles/02-qna/Python/qna-app 안의 .env 파일에는 앞서 만든 리소스의 엔드포인트와 키를 입력해주고, SQ_PROJECT_NAME에는 Language Studio에서 만든 프로젝트의 이름을, QA_DEPLOYMENT_NAME은 production 그대로 두면 된다.

코드 다루기

qna-app.py 파일을 열어서

from azure.core.credentials import AzureKeyCredential
from azure.ai.language.questionanswering import QuestionAnsweringClient

두 모듈을 가져와주고,

# Create client using endpoint and key
credential = AzureKeyCredential(ai_key)
ai_client = QuestionAnsweringClient(endpoint=ai_endpoint, credential=credential)

코드를 추가해줌으로써 리소스에 접근할 수 있게 해준다.

# Submit a question and display the answer
user_question = ''
while user_question.lower() != 'quit':
    user_question = input('\nQuestion:\n')
    response = ai_client.get_answers(question=user_question,
                                    project_name=ai_project_name,
                                    deployment_name=ai_deployment_name)
    for candidate in response.answers:
        print(candidate.answer)
        print("Confidence: {}".format(candidate.confidence))
        print("Source: {}".format(candidate.source))

마지막에 이 코드를 추가해주고

python qna-app.py

를 해주면

다음과 같은 질문과 답을 받을 수 있다.

profile
사용자불량

0개의 댓글

Powered by GraphCDN, the GraphQL CDN