HyperAI초신경
Back to Headlines

OpenAI API를 활용한 경제적 심층 연구 방법 소개

4일 전

깊이 있는 연구를 위해 OpenAI API 키 활용하기 -Towards AI 딥 리서치(Deep Research, DR) 모델은 웹 스크래핑과 분석의 세계를 혁신하고 있다. 이 모델들은 연구 단계를 계획하고, 수백 개의 사이트를 스크래핑하며, 자가 교정 작업을 수행하여 일반적인 웹 접근성을 가진 논리적 언어 모델보다 성능이 크게 향상된다. 그러나 이러한 뛰어난 능력은 무료로 제공되지 않는다. 2025년 7월 기준, ChatGPT는 Plus, Team, Enterprise, 그리고 Edu 사용자들에게 매월 25개의 딥 리서치 쿼리를 제한하며, Pro 사용자들에게는 125개의 딥 리서치 쿼리와 125개의 추가적인 "라이트급" 쿼리를 제공한다. 무료 계획 사용자는 딥 리서치를 요청할 수 없지만, 5개의 "라이트급" 쿼리는 여전히 사용 가능하다. 딥 리서치는 많은 웹사이트의 내용을 처리하고, 자신의 논리 단계를 반복적으로 재평가하므로 토큰 사용량이 급격히 증가한다. 또한 딥 리서치 기능을 제공하는 LLM 공급자가 제한적이기 때문에, 선두 연구실들은 여전히 프리미엄을 부과할 수 있다. 이제 딥 리서치의 유연한 구독 모델을 피하고 필요한 만큼만 지불할 수 있는 방법을 살펴보자. OpenAI의 API를 통해 딥 리서치 모델에 접근하면, 이는 매우 쉽다. 현재 두 가지 딥 리서치 모델인 o3-deep-research와 o4-mini-deep-research가 제공되며, 앞으로 더 많은 모델이 추가될 예정이다. 기본 설정 OpenAI API 키가 있으면, 딥 리서치를 위한 간단한 코드 예시는 다음과 같다: python system_message = """ 당신은 전문 연구원으로, 글로벌 건강 경제팀을 대신해 구조적이고 데이터 기반의 보고서를 작성합니다. 사용자가 제기한 건강 관련 질문을 분석해야 합니다. 분석적이어야 하며, 일반화를 피하고 각 섹션이 의료 정책이나 금융 모델링에 정보를 제공할 수 있도록 데이터로 뒷받침된 논리적 설명을 보장해야 합니다. """ user_query = "세마글루타이드(semaglutide)가 글로벌 의료 시스템에 미치는 영향을 연구하세요." response = client.responses.create( model="o3-deep-research", input=[ { "role": "developer", "content": [ { "type": "input_text", "text": system_message, } ] }, { "role": "user", "content": [ { "type": "input_text", "text": user_query, } ] } ], reasoning={ "summary": "auto" }, tools=[ { "type": "web_search_preview" }, { "type": "code_interpreter", "container": { "type": "auto", "file_ids": [] } } ] ) 이 코드 조각에서 주목해야 할 몇 가지 사항이 있다. 첫째, 딥 리서치 모델은 웹 검색이 구성되어 있어야 작동한다. 둘째, OpenAI는 샌디박스된 코드 인터프리터를 제안하지만, 실제 사용에서는 거의 사용되지 않는 것으로 보인다. 세번째, MCP 서버 사용 옵션이 있지만, 대부분의 공용 MCP 서버와는 호환되지 않는다. 아키텍처 딥 리서치의 워크플로우는 다음과 같이 구성된다: 1. Research Agent가 딥 리서치 모델을 실행하고 초기 보고서를 생성한다. 2. Critique Agent가 이 보고서를 도전하고, 필요하다면 추가적인 연구를 요청한다. 3. Final Report Agent가 연구 결과와 비평을 종합하여 최종 문서를 제공한다. 이 시스템에서는 최대 2번의 딥 리서치 실행을 허용하며, 이는 신뢰성 향상과 비용 절감을 위해 설계되었다. 또한, 주제가 추가 조회를 필요로 하지 않는 경우 축소되는 효과를 피하기 위함이다. 딥 리서치 모델의 제한 극복 딥 리서치 모델은 도구 지원이 제한적이다. 이는 다음과 같은 두 가지 의미를 갖는다: 1. Research Agent는 LLM이 결정을 내리지 않고 프로그래밍 방식으로 Critique Agent에게 제어를 넘겨야 한다. 2. Critique Agent는 일반적인 추론 모드를 사용하며, 필요에 따라 Research Agent에게 다시 제어를 넘길 수 있다. 이벤트 처리 원시 이벤트를 처리하여 웹 검색, 추론 요약, MCP 조회, 도구 호출 등을 중간에 감지하고, 토큰 사용량을 수집하여 최종 비용을 추정해야 한다. 워크플로우 전환은 자연스럽게 출력을 캡처하고 다음 단계를 별도로 시작할 수 있는 위치를 제공하여 프롬프트 엔지니어링과 실패 관리를 용이하게 한다. 구현 디바이스 팩토리에서 Research, Critique, Final Report 세 가지 유형의 에이전트를 반환한다. Research Agent와 Critique Agent는 웹 검색 도구와 코드 인터프리터 도구를 사용하며, Critique Agent는 추가로 MCP 서버와 커스텀 도구를 사용한다. ```python return Agent( name="ResearchAgent", instructions=research_instructions, model=MODEL_RESEARCH, model_settings=ResearchAgents._create_base_model_settings(), tools=[ WebSearchTool(), CodeInterpreterTool(tool_config=CodeInterpreter( type="code_interpreter", container={"type": "auto", "file_ids": []} )), ], handoffs=[] ) ... return Agent( name="CritiqueAgent", instructions=critique_instructions, model=MODEL_CRITIQUE, model_settings=ResearchAgents._create_base_model_settings(), tools=[ WebSearchTool(), verify_url ], handoffs=handoffs ) ... return Agent( name="FinalReportAgent", instructions=final_report_instructions, model=MODEL_FINAL_REPORT, model_settings=ResearchAgents._create_base_model_settings(), tools=[ CodeInterpreterTool(tool_config=CodeInterpreter( type="code_interpreter", container={"type": "auto", "file_ids": []} )), WebSearchTool() ] ) ``` Critique Agent는 MCP 서버와 연결되어 있으며, 다음과 같은 코드로 구현된다: python async def create_critique_agent_with_mcp(research_agent=None) -> tuple[Agent, MCPServerSse]: deepwiki_server = MCPServerSse( params={ "url": "https://mcp.deepwiki.com/sse", "timeout": 30, "sse_read_timeout": 600 }, client_session_timeout_seconds=60.0, cache_tools_list=True, name="DeepWiki" ) await deepwiki_server.connect() agent = ResearchAgents.create_critique_agent(research_agent) agent.mcp_servers = [deepwiki_server] agent.mcp_config = { "convert_schemas_to_strict": True, "timeout": 30, "request_timeout": 60 } return agent, deepwiki_server 또한, URL의 유효성을 확인하는 verify_url 함수가 다음과 같이 구현되어 있다: python def verify_url(url: str) -> Dict[str, Any]: if not url or not isinstance(url, str): return { "success": False, "status_code": None, "error": "잘못된 URL 제공 - 비어 있지 않은 문자열이어야 함", "accessible": False, "response_time_ms": None } 구성을 위한 설정과 OpenAI 실패 모드 딥 리서치 앱의 구성은 주요 연구 결과를 검증하기 위한 커스텀 도구킷이나 MCP 서버를 추가하는 것이 주를 이룬다. 또한, research_agents.py에서 Critique Agent 프롬프트의 관련 부분을 수정하여 사용 가능한 커스텀 도구를 반영해야 한다. 이는 선택적일 수 있지만, 명시적인 프롬프트가 모델이 MCP 도구를 사용하도록 유도하는 데 더 효과적일 수 있다. python """ 중요: 모든 GitHub 저장소와 API 엔드포인트의 유효성을 검증해야 합니다. 예: "facebook/react"나 "https://github.com/user/repo"와 같은 저장소 이름 중요: API 엔드포인트의 존재 여부를 검증하기 위해 `verify_url` 도구를 사용해야 합니다. 중요: 모든 GitHub 저장소에 대해 `DeepWiki MCP` 도구를 즉시 사용하여 추가 정보를 수집해야 합니다. """ 사용 예제 완전한 앱 실행 예제는 다음과 같다: bash $ export QUERY="Google ADK, LangChain, OpenAI Agents의 에이전트 핸드오프 메커니즘 비교" $ python agentic_research.py -q "$(echo $QUERY)" -cvri 연구 단계에서는 웹 검색과 추론 요약이 주로 이루어지며, 복잡도에 따라 2분에서 10분 정도 소요될 수 있다. 비평 단계에서는 여러 도구와 MCP 호출이 이루어져 연구 결과의 완성도를 높인다. 최종 보고서 단계에서는 비평 결과와 연구 결과를 종합하여 마크다운 형식의 보고서를 생성한다. 이 과정에서 토큰 사용량을 자동으로 계산하여 비용 분석을 제공한다. ```python 토큰 사용량과 비용 계산 예제 import pandas as pd 토큰 사용량 통계 추출 token_usage = { "o4-mini-deep-research": {"prompt": 484888, "reasoning": 19200, "cached": 1343972, "output": 22140}, "o4-mini": {"prompt": 239264, "reasoning": 17152, "cached": 1371630, "output": 19526} } OpenAI 가격 정보 가져오기 prices = { "o4-mini-deep-research": {"prompt": 2.00, "reasoning": 2.00, "output": 8.00}, "o4-mini": {"prompt": 1.10, "reasoning": 1.10, "output": 4.40} } 비용 계산 def calculate_cost(token_usage, prices): costs = {} for model, usage in token_usage.items(): costs[model] = { "prompt": usage["prompt"] * prices[model]["prompt"] / 1000000, "reasoning": usage["reasoning"] * prices[model]["reasoning"] / 1000000, "cached": 0, "output": usage["output"] * prices[model]["output"] / 1000000, "total": sum([usage["prompt"] * prices[model]["prompt"] / 1000000, usage["reasoning"] * prices[model]["reasoning"] / 1000000, usage["output"] * prices[model]["output"] / 1000000]) } return costs costs = calculate_cost(token_usage, prices) ``` 최종 비용 분석 | 모델 | 토큰 유형 | 카운트 | 비율 (USD/1M 토큰) | 비용 (USD) | |-----------------------------|------------------|---------:|-------------------:|-----------:| | o4-mini-deep-research | 프롬프트 (유료) | 484,888 | $2.00 | $0.9698 | | | 추론 | 19,200 | $2.00 | $0.0384 | | | 캐시 (무료) | 1,343,972| $0.00 | $0.0000 | | | 출력 | 22,140 | $8.00 | $0.1771 | | | 총계 | 1,870,200| | $1.1853| | o4-mini | 프롬프트 (유료) | 239,264 | $1.10 | $0.2632 | | | 추론 | 17,152 | $1.10 | $0.0189 | | | 캐시 (무료) | 1,371,630| $0.00 | $0.0000 | | | 출력 | 19,526 | $4.40 | $0.0859 | | | 총계 | 1,647,572| | $0.3679| | 연구 + 비평 부분 총계 | | 3,517,772| | $1.5532| | 예상 최종 보고서 (o4-mini) | 프롬프트 | 2,000 | $1.10 | $0.0022 | | | 출력 | 10,000 | $4.40 | $0.0440 | | | 단계별 총계 | 12,000 | | $0.0462| | 전체 단계 총계 | | 3,529,772| | $1.5994| 이 앱은 중간 단계에서 실패하거나 프롬프트 조정이 필요할 때 이전 단계의 결과를 재사용하여 나중 단계를 재시작할 수 있다. 예를 들어, 최종 보고서 단계가 실패하면 연구와 비평 단계의 결과를 재사용할 수 있다. 산업 전문가들의 평가 전문가들은 이 접근법이 유연성과 비용 효율성을 크게 향상시키는 중요한 발전이라고 평가한다. OpenAI의 API를 활용하면, 연구자가 필요에 따라 딥 리서치를 실시할 수 있으며, 고정된 구독 모델의 제약을 피할 수 있다. 이를 통해 다양한 연구 요구에 맞춘 맞춤형 솔루션을 쉽게 구축할 수 있다. 회사 프로필 OpenAI는 인공 지능 기술의 선두주자로, 연구 및 개발 분야에서 혁신적인 기능들을 제공한다. 특히, API를 통해 딥 리서치 기능을 확장할 수 있어 연구자의 생산성을 크게 향상시킨다.

Related Links