AutoBrowse는 웹을 탐색할 수 있는 자율 AI 에이전트입니다. AutoBrowse에 작업을 제공하기만 하면 마치 인간인 것처럼 웹 브라우저와 상호 작용하여 작업을 완료합니다.
귀하가 제공할 수 있는 작업의 몇 가지 예는 다음과 같습니다.
booking.com으로 이동하여 마드리드에서 11월 2일부터 2박 동안 1박당 EUR 200 미만의 2인용 호텔을 찾아보세요.
이메일([email protected])과 비밀번호 C0mplexPassword!를 사용하여 ryanair.com에 가입하세요.
Craigslist로 이동하여 Nintendo DS를 검색하세요. 첫 번째 결과를 클릭하세요.
https://drive.google.com/file/d/1Ind9z3mjHKTS-Q0vJl2FaHcPLrZtdEX0/view
Python 3.9 환경 만들기
conda create --name py39 python=3.9
환경 활성화
conda activate py39
종속성 설치
pip install -r requirements.txt
브라우저 환경 시작
실행 방법에 대한 지침은 browser-console/
아래의 README를 확인하세요.
다음 콘텐츠로 OAI_CONFIG_LIST
파일을 생성하고 OpenAI API 키를 입력하세요.
[
{
"model" : " gpt-4 " ,
"api_key" : " <your-api-key> "
},
{
"model" : " gpt-3.5-turbo " ,
"api_key" : " <your-api-key> "
},
{
"model" : " gpt-3.5-turbo-16k " ,
"api_key" : " <your-api-key> "
}
]
자동 찾아보기 실행
python autobrowse.py
그러면 AutoBrowse에 작업을 제공하라는 메시지가 표시됩니다.
agent_config.py
파일을 수정하여 에이전트 구성을 수정할 수 있습니다. 시스템 프롬프트를 편집하고 사용된 OpenAI 모델을 변경할 수 있습니다.
AutoBrowse는 자동 생성 에이전트와 브라우저 콘솔을 사용하여 작업을 계획하고 실행합니다.
디자인은 3개의 에이전트로 구성됩니다.
브라우저에 열려 있는 현재 페이지의 HTML에 대한 질문에 답변하는 HTML 도우미입니다.
puppeteer.js 코드를 생성하여 브라우저와 상호 작용하는 코드 생성기 에이전트(예: 새 페이지로 이동, 버튼 클릭, 양식 요소 채우기)
사용자가 제공한 상위 수준 작업 설명을 이행하기 위해 위의 두 에이전트의 사용을 조정하는 플래너 에이전트입니다.
에이전트는 실행할 puppeteer.js 코드를 허용하는 엔드포인트와 현재 열려 있는 페이지의 렌더링된 HTML을 반환하는 엔드포인트가 있는 샌드박스 브라우저 환경에 대한 웹소켓 연결을 통해 브라우저와 상호 작용합니다.
HTML 문서는 상당히 길 수 있고 OpenAI의 토큰 제한을 초과할 수 있으므로 HTML에 대한 쿼리에 응답하기 위해 다음 접근 방식이 사용됩니다.
브라우저 환경에서 반환된 HTML은 크기를 줄이기 위해 제거되고 단순화됩니다. 이는 id, name, type 및 class와 같은 가장 중요한 속성만 유지함으로써 수행됩니다. 또한 script
, style
, noscript
, img
, svg
, link
, meta
태그가 모두 제거됩니다.
처리된 HTML은 gpt-3.5-turbo-16k
의 16K 컨텍스트 창에 쉽게 맞도록 15,000개의 토큰(OpenAI로 계산)으로 분할됩니다.
OpenAI 임베딩과 함께 RAG를 사용하면 가장 관련성이 높은 청크가 질문에 대한 컨텍스트로 제공되며 gpt-3.5-turbo
HTML에 대한 질문에 답할 수 있습니다.
코드 생성기는 gpt-4
사용하여 브라우저와 상호 작용하는 puppeteer.js 코드를 생성합니다. 코드 생성기에 부착된 사용자 프록시 에이전트는 이 코드를 실행할 브라우저 환경으로 전송하고 결과를 보고하므로, 오류가 있는 경우 코드 생성기가 코드를 수정할 수 있습니다. 코드 생성은 가능한 한 정확해야 하기 때문에 더 저렴한 gpt-3.5-turbo
모델을 선호하여 더 비싼 gpt-4
모델이 사용됩니다.
플래너는 사용자로부터 작업 설명을 받고 필요에 따라 HTML 도우미 및 코드 생성기를 호출하여 작업을 완료하려고 합니다. 플래너는 자체 사고 외에도 두 가지 기능을 호출할 수 있습니다.
ask_html_assistant()
HTML 도우미에게 현재 HTML에 대한 질문을 요청합니다(예: 가입 양식에 대한 HTML 추출).
ask_code_generator()
는 코드 생성기에 브라우저에 보낼 puppeteer.js 코드를 생성하도록 요청합니다. 플래너는 코드 생성기에 더 많은 컨텍스트를 제공하기 위해 HTML 도우미에서 검색된 HTML을 추가할 수도 있습니다.