Trawling
발견 출처 dev.to/발행

How to Build an AI Assistant in Termux With Python

Termux와 Python으로 안드로이드 폰에서 AI 어시스턴트 만들기

컴퓨터 없이 안드로이드 폰의 Termux 환경에서 Python 스크립트와 OpenAI API만으로 동작하는 터미널 AI 어시스턴트를 만드는 입문 튜토리얼입니다. 환경 설정부터 .env 기반 API 키 관리, Responses API 호출까지 전 과정을 다루며, gpt-5-mini가 추론만 반환하는 문제를 피하는 실용적인 팁도 담고 있습니다.

본문

별도의 컴퓨터나 복잡한 개발 환경 없이 안드로이드 스마트폰만으로 AI 어시스턴트를 만들 수 있다는 것이 이 글의 출발점입니다. Termux 터미널 환경에서 Python 스크립트와 AI API, 몇 개의 패키지만으로 질문을 입력받아 AI가 생성한 답변을 터미널에 출력하는 어시스턴트를 처음부터 만들어 실행하는 과정을 안내합니다. 시작 전 준비물로는 Termux 설치, 기본적인 터미널 사용 지식, Python 설치, 그리고 AI 제공사의 API 키가 필요합니다.

환경 설정과 패키지 설치

먼저 pkg update && pkg upgrade로 Termux 패키지를 최신 상태로 갱신한 뒤, pkg install python으로 Python을 설치하고 python --version으로 설치를 확인합니다. 이후 mkdir ai-assistant로 프로젝트 디렉터리를 만들고 이동합니다. API 통신에는 OpenAI Python 패키지를 사용하며 pip install openai로 설치합니다. API 키를 코드 밖으로 분리하기 위해 python-dotenv도 함께 설치합니다.

API 키 분리와 보안 주의사항

nano .env로 .env 파일을 만들고 OPENAI_API_KEY=your_api_key_here 형식으로 실제 키를 입력합니다. 글은 이 파일을 공개하거나 GitHub에 올리지 말라고 명확히 경고합니다. 노출된 API 키는 타인에 의해 사용될 수 있고 예상치 못한 API 사용료로 이어질 수 있기 때문입니다.

어시스턴트 코드 구조

assistant.py는 단순한 구조입니다. load_dotenv()로 .env에서 키를 읽고 OpenAI 클라이언트를 생성한 뒤, while 루프에서 input()으로 사용자 질문을 받습니다. 'exit'를 입력하면 종료하고, 그 외에는 client.responses.create()로 gpt-5-mini 모델에 질문을 보내 response.output_text를 출력합니다. 예외는 try/except로 잡아 오류 메시지를 출력하고 루프를 계속 돌립니다.

Responses API의 빈 응답 문제와 해결

이 글에서 눈여겨볼 기술적 지점은 text={"format": {"type": "text"}} 인자입니다. Responses API에서 gpt-5-mini는 내부 추론(reasoning)만 반환하고 output_text를 비워 두는 경우가 있는데, 일반 텍스트 출력 형식을 강제하면 이를 방지하고 항상 눈에 보이는 답변을 받을 수 있다고 설명합니다. Responses API를 처음 다루는 개발자가 흔히 겪는 혼란을 미리 차단하는 실용적인 디테일입니다.

확장 방향

기본 버전은 의도적으로 단순하게 유지되지만, 글은 여러 확장 경로를 제시합니다. 현재 세션 동안 이전 메시지를 기억하는 대화 히스토리, /help나 /clear 같은 슬래시 명령, 음성 입력과 TTS를 통한 음성 어시스턴트화, 그리고 파일 조작이나 승인된 명령 실행 등 다른 Termux 기능과의 연동입니다. 핵심 메시지는 Termux가 단순한 Python 스크립트 실행기를 넘어 안드로이드에서 직접 AI 애플리케이션을 실험할 수 있는 유용한 환경이라는 점입니다. 작은 스크립트와 API 하나로 시작해 메모리, 명령어, 음성, 파일 처리 같은 기능을 점진적으로 붙여 나갈 수 있습니다.

원문: dev.to / 번역·요약: Trawling