Perplexity AI를 활용한 대화형 질문-답변 시스템 구현하기

안녕하세요, 오늘은 Perplexity AI의 API를 사용하여 간단한 대화형 질문-답변 시스템을 Python으로 구현하는 방법을 소개해드리려고 합니다. 이 시스템은 사용자의 질문에 대해 AI가 생성한 답변을 제공하고, 그 결과를 파일로 저장하는 기능을 갖추고 있습니다.

주요 기능

  1. Perplexity AI API를 통한 질문 답변
  2. 사용자 친화적인 대화형 인터페이스
  3. 생성된 답변의 자동 파일 저장
  4. 연속적인 질문-답변 세션 지원

코드 구현

먼저, 필요한 라이브러리를 임포트하고 API 설정을 합니다:

import os
import re
from openai import OpenAI

# API 키 설정 (실제 사용 시 보안에 주의하세요)
YOUR_API_KEY = "YOUR_API_KEY_HERE"
os.environ["PERPLEXITY_API_KEY"] = YOUR_API_KEY

# OpenAI 클라이언트 초기화
client = OpenAI(
    api_key=os.environ.get("PERPLEXITY_API_KEY"),
    base_url="https://api.perplexity.ai"
)

다음으로, Perplexity AI로부터 답변을 얻는 함수를 정의합니다:

def get_perplexity_response(prompt):
    try:
        response = client.chat.completions.create(
            model="llama-3.1-sonar-small-128k-online",
            messages=[
                {"role": "system", "content": "You are a helpful assistant."},
                {"role": "user", "content": prompt}
            ]
        )
        return response.choices[0].message.content
    except Exception as e:
        return f"오류 발생: {str(e)}"

답변을 파일로 저장하는 기능도 구현합니다:

def save_text_to_file(text, filename):
    with open(filename, 'w', encoding='utf-8') as file:
        file.write(text)
    return f'텍스트가 {filename}에 저장되었습니다.'

def create_safe_filename(text):
    safe_text = re.sub(r'[^\w\s-]', '', text)
    safe_text = re.sub(r'\s+', '_', safe_text.strip())
    return safe_text[:50]

마지막으로, 메인 로직을 구현합니다:

def main():
    while True:
        user_question = input("질문을 입력하세요: ")
        answer = get_perplexity_response(user_question)
        print("\n답변:")
        print(answer)

        safe_filename = create_safe_filename(user_question)
        file_name = f'{safe_filename}_answer.txt'
        save_result = save_text_to_file(answer, file_name)
        print(save_result)

        if not ask_continue():
            print("프로그램을 종료합니다.")
            break

if __name__ == "__main__":
    main()

사용 방법

  1. Perplexity AI에서 API 키를 발급받습니다.
  2. 코드의 YOUR_API_KEY 부분을 발급받은 API 키로 교체합니다.
  3. 스크립트를 실행하고 질문을 입력합니다.
  4. AI가 생성한 답변을 확인하고, 자동으로 저장된 파일을 확인합니다.
  5. 계속해서 질문하거나 프로그램을 종료할 수 있습니다.

주의사항

  • API 키는 반드시 안전하게 관리해야 합니다. 환경 변수나 별도의 설정 파일을 사용하는 것이 좋습니다.
  • 실제 서비스에 적용할 때는 더 강력한 에러 처리와 보안 조치가 필요합니다.
  • Perplexity AI의 사용 정책을 반드시 확인하고 준수해야 합니다.

이 간단한 프로젝트를 통해 AI API를 활용한 대화형 시스템의 기본적인 구현 방법을 배울 수 있습니다. 여러분의 필요에 맞게 기능을 확장하고 개선해 보세요!

Leave a Comment