현대 비즈니스 환경에서 테스트 자동화는 소프트웨어 개발 과정의 핵심 요소로 자리 잡았습니다. 많은 기업들이 효율성과 정확성을 높이기 위해 다양한 테스트 자동화 도구를 도입해 왔습니다. 그러나 기존 개발 방식과 레거시 코드의 복잡성은 자동화 테스트의 적용을 어렵게 만들었습니다. 과거의 규정과 업무 변화에 급히 대응하며 추가된 예외 로직은 코드를 복잡하게 만들었고, 이로 인해 단위 테스트가 사실상 불가능해지는 상황에 이르렀습니다. Ui-Path나 Auto Anywhere와 같은 솔루션을 활용하는 시도도 있었지만, 이러한 도구들 역시 한계에 직면했습니다. 또한, Selenium을 이용한 자동화 접근 방식은 HTML 구조와 DOM에 대한 깊은 이해를 요구하며, 개발자에게 상당한 어려움을 줍니다.
개발자들은 더 나은 솔루션을 모색하게 되었고, 이 과정에서 자연어 명령을 브라우저 인터랙션(Selenium Code)으로 변환하여 브라우저를 자동화하는 Python 프레임워크가 등장했습니다.
LaVague는 기본적으로 사용자가 자연어만으로 웹 브라우저의 자동화 작업을 할 수 있도록 하는 AI 도구입니다. Selenium을 사용한 테스트 자동화를 개발할 때, HTML 구조와 DOM에 대한 깊은 이해가 필요했던 것과 달리, LaVague를 이용하면 이러한 복잡성을 대폭 줄여줍니다. 사용자는 복잡한 코딩 없이도 자연어로 자신이 원하는 웹 자동화를 설명하기만 하면 됩니다. 이는 기존의 개발 지식이 필요했던 부분을 AI가 해결해 주는 혁신적인 접근 방식입니다.
물론, LaVague가 현재 초기 단계에 있기 때문에 아직 개선해야 할 부분이 많습니다. 그럼에도 불구하고, 생성형 AI를 활용한 이 방법은 웹 자동화 분야에서 매우 좋은 시도로 보입니다. 특히, LaVague의 현재 버전으로 다양한 테스트를 진행하면서 겪은 어려움을 직접 해결해 나가면서, 이 도구의 가능성과 한계를 보다 명확히 파악할 수 있었습니다.
이전에 초당 300 토큰을 처리할 수 있는 Groq의 빠른 플랫폼 API에 대해 설명드린 바 있습니다. 빠른 처리 능력을 가진 Groq API를 LaVague에서도 활용할 수 있도록 하였습니다.
- GROQ API("mixtral-8x7b-32768") 모델을 추가하여 선택할 수 있도록 하였습니다.
- Anthropic API("claude-3-haiku-20240307") 모델을 추가하여 선택할 수 있도록 하였습니다.
- 사용자는 필요에 따라 다양한 LLM 모델을 선택하여 사용할 수 있습니다.
기존에는 Gemma 모델만 사용하여 영문 명령만 처리할 수 있었습니다. 모델 추가로 인해 한글 명령도 지원하게 되었습니다. 사용자는 이제 한글로 명령을 입력하여 LaVague를 사용할 수 있습니다.
서두에서 언급했듯이, LaVague 프로젝트는 아직 초기 단계에 있으며, 완벽하게 작동하지 않는 경우도 종종 발생합니다. 이러한 초기 단계의 어려움에도 불구하고, 생성형 AI를 활용하여 웹 자동화를 달성하려는 LaVague의 접근 방식은 매우 유용한 시도 중 하나로 보입니다.
LaVague is an open-source project designed to automate automation for devs!
We use advanced AI techniques (RAG, Few-shot learning, Chain of Thought) to turn natural language instructions into Python code leveraging Selenium. LaVague is designed to make it easy for users to automate web workflows and execute them on a browser.
Here's an example to show how LaVague can execute natural language instructions on a browser to automate interactions with a website:
You can get started with LaVague
in 2 steps:
- Install LaVague & dependencies
wget https://raw.githubusercontent.com/lavague-ai/LaVague/main/setup.sh &&
sudo bash setup.sh
- Run your LaVague command!
You can either launch
an interactive demo, where LaVague will execute and show you the results of the automation code it generates for your instruction.
lavague --instructions examples/instructions/huggingface.yaml --config examples/configurations/api/openai_api.py launch
Or you can use the build
command to directly get the Python code leveraging Selenium in a file, which you can then inspect & execute locally.
lavague --instructions examples/instructions/huggingface.yaml --config examples/configurations/api/openai_api.py build
For a step-by-step guide or to run LaVague in a Google Colab, see our quick-tour which will walk you through how to get set-up and launch LaVague with our CLI tool.
If you want to get started with LaVague build using Playwright as your underlying automation tool, see our Playwright integration guide
We would love your help in making La Vague a reality.
To avoid having multiple people working on the same things & being unable to merge your work, we have outlined the following contribution process:
- 📢 We outline tasks on our
backlog
: we recommend you check out issues with thehelp-wanted
labels &good first issue
labels - 🙋♀️ If you are interested in working on one of these tasks, comment on the issue!
- 🤝 We will discuss with you and assign you the task with a
community assigned
label - 💬 We will then be available to discuss this task with you
- ⬆️ You should submit your work as a PR
- ✅ We will review & merge your code or request changes/give feedback
Please check out our contributing guide
for a more detailed guide.
If you want to ask questions, contribute, or have proposals, please come on our Discord
to chat!
TO keep up to date with our project backlog here.
This project executes LLM-generated code using exec
. This is not considered a safe practice. We therefore recommend taking extra care when using LaVague (such as running LaVague in a sandboxed environment)!