생물학 분야 LLM 활용 소개
요약
본 글은 유전자 심볼을 입력받아 기능, 경로, 질병 관련성을 구조화된 요약 형태로 반환하는 생물학 커맨드라인 어시스턴트 구축 과정을 소개합니다. OpenAI SDK와 Oxlo.ai API를 활용하여 JSON 출력을 강제하고 신뢰도 인용 기능을 추가했습니다. 토큰 기반이 아닌 요청당 과금 방식을 사용하여 비용 효율성을 높인 것이 특징입니다.
핵심 포인트
- 유전자 심볼 분석을 위한 생물학 LLM 어시스턴트 구축 방법 제시
- OpenAI SDK와 Oxlo.ai API를 활용한 실습 코드 제공
- 시스템 프롬프트를 이용해 JSON 출력 및 신뢰도 인용 강제화
- 요청당 과금(flat per-request pricing)으로 비용 예측 가능성 확보
우리는 유전자 심볼을 입력받아 그 기능, 경로, 질병 관련성을 구조화된 요약 형태로 반환하는 커맨드라인 생물학 어시스턴트를 구축하고 있습니다. 이 도구는 전통적인 제공업체에 긴 프롬프트를 전송할 때 발생할 수 있는 토큰 비용의 예상치 못한 증가 없이 빠르고 근거 있는 답변이 필요한 바이오인포매틱스 연구원과 생물학 학생들을 대상으로 합니다.
준비물
- Python 3.10 이상
- OpenAI SDK:
pip install openai - https://portal.oxlo.ai에서 받은 Oxlo.ai API 키
Oxlo.ai는 요청당 평면 요금(flat per-request pricing)을 사용하므로, 추가 컨텍스트를 추가하거나 대규모 배치 작업을 실행해도 토큰 기반 청구 방식처럼 비용이 증가하지 않습니다. 플랜은 https://oxlo.ai/pricing에서 확인할 수 있습니다.
1단계: Oxlo.ai 클라이언트 설정
저는 먼저 Oxlo.ai를 가리키는 클라이언트를 생성하고 간단한 생물학적 검증을 통해 연결을 확인합니다. 저는 사실적인 질의를 안정적으로 처리하기 때문에 llama-3.3-70b를 사용합니다.
from openai import OpenAI
client = OpenAI(base_url="https://api.oxlo.ai/v1", api_key="YOUR_OXLO_API_KEY")
...
2단계: 생물학 시스템 프롬프트 작성
다음으로, 저는 모델을 구조화된 큐레이터 페르소나로 고정합니다. 시스템 프롬프트는 JSON 출력을 강제하고 모델에게 신뢰도 수준을 인용하도록 요청하여 답변이 근거를 갖도록 유지합니다.
SYSTEM_PROMPT = """당신은 생물학 연구 큐레이터입니다.
사용자는 유전자 심볼을 제공할 것입니다.
다음 키들만 포함하는 유효한 JSON 형식으로 응답하십시오:
...
3단계: 유전자 질의 함수 구축
이제 API 호출을 유전자 심볼을 받아 상세한 사용자 메시지에 주입하고 원시 완료(raw completion)를 반환하는 함수로 감쌉니다. Oxlo.ai는 토큰당이 아닌 요청당 과금하므로, 프롬프트 길이에 대한 걱정 없이 추가 지침으로 사용자 메시지를 확장할 수 있습니다.
import json
def summarize_gene(gene_symbol: str) -> str:
...
4단계: 응답 파싱 및 검증
LLM은 간혹 malformed JSON을 반환할 수 있으므로, 디코딩에 실패할 경우 raw text 문자열로 폴백(fallback)하는 경량 파서(parser)를 추가했습니다.
def parse_summary(raw_text: str) -> dict:
try:
cleaned = raw_text.strip()
...
```:
cleaned = cleaned.removeprefix("```json").removeprefix("
```").removesuffix("```").strip()
data = json.loads(cleaned)
...
Step 5: 배치 러너 어셈블리 (Assemble the batch runner)
마지막으로, 이 모든 것을 여러 유전자 목록을 처리하고 결과를 읽기 쉬운 형식으로 출력하는 작은 스크립트로 연결했습니다.
if __name__ == "__main__":
genes = ["BRCA1", "MYC", "EGFR"]
...
실행 (Run it)
완성된 스크립트를 biology_assistant.py로 저장하고, YOUR_OXLO_API_KEY를 교체한 후 실행하세요.
python biology_assistant.py
예시 출력:
---
BRCA1 ---
{
"gene_symbol": "BRCA1",
...
다음 단계 (Next steps)
더 긴 추론 체인(reasoning chains)이 필요하면 Oxlo.ai에서 모델을 kimi-k2.6 또는 deepseek-v3.2로 교체해 보거나, JSON 출력을 pandas DataFrame으로 파이프하여 로컬 유전자 데이터베이스를 구축해 보세요. 프로덕션 환경으로 이동하게 되면, Oxlo.ai의 요청당 평면 가격 책정(flat per-request pricing) 덕분에 전체 초록(abstracts)이나 FASTA 시퀀스로 프롬프트가 확장되더라도 비용 예측이 용이합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기