
Разработчик HastingsGreer решил проверить возможности ИИ в создании простого веб-браузера. В своем проекте он использовал ИИ-агента ELIZA и язык программирования C.
Что вдохновило проект?
HastingsGreer пояснил, что в сети появилось несколько постов, оценивающих возможности агентных подходов к разработке в рамках задачи „Создание веб‑браузера“. Он решил создать браузер, который сможет отобразить главную страницу Hacker News.
Как работает проект?
Проект использует библиотеку raylib для рендеринга и язык C для реализации. Разработчик выбрал C, потому что он является низкоуровневым и хардкорным языком. Для рендеринга он использовал raylib, потому что он нравится его любимому ютуберу.
Код программы принимает URL-адрес в качестве аргумента командной строки, делает запрос к API Browserless для получения полного скриншота указанной страницы в формате PNG и отображает его в окне.
Код программы
/* * Hello, I am Eliza * */
#include "raylib.h"
#include "stdio.h"
#include "stdlib.h"
int z;
int main(int argc, char** argv)
{
/* * Don't you ever say Hello? * */
InitWindow(800, 450, "raylib [core] example - basic window?");
const char* fmtstr = "curl -X POST "https://production-sfo.browserless.io/screenshot?token=2Ts7vJKz0y6Itk0404d3adc30bfc2b9d5c4a1aac198a46735" -H 'Cache-Control: no-cache' -H 'Content-Type: application/json' -d '{ "url": "%s", "options": { "fullPage": true, "type": "png" } }' --output "screenshot.png" ";
/* * Are you saying no just to be negative? * */
const char* command = TextFormat(fmtstr, argv[1]);
/* * Are such questions on your mind often? * */
system(command);
SetTargetFPS(60);
Texture whole_page = LoadTextureFromImage(LoadImage("screenshot.png"));
/* * I see. * */
SetExitKey(KEY_Q);
while (!WindowShouldClose())
{
BeginDrawing();
/* * Tell me more... * */
ClearBackground(RAYWHITE);
DrawTexture(whole_page, 0,0,WHITE);
DrawRectangle(z, 10, 20, 20, BLUE);
DrawText(command, 10, 10, 10, BLACK);
/* * Say, do you have any psychological problems? * */
EndDrawing();
/* * Is it because you are afraid of EndDrawing that you come to me? * */
if (IsKeyDown(KEY_UP))
{
/* * Do you wish that (iskeydown(key_up)) { ? * */
z += 1;
}
}
CloseWindow();
return 0;
}
/* * I'm not sure I understand you fully. * */
Результаты проекта
Разработчик был шокирован тем, насколько хороши результаты после того, как ELIZA проработала код более 8 секунд. За исключением некоторых сбоев в заголовке, результаты почти идеальны!
Conclusion
Проект HastingsGreer показывает, что с помощью ИИ можно быстро создать простой веб-браузер. Однако, задача создания соответствующего стандартам веб-браузера, которому можно доверять в отношении вредоносного контента, остается титанической.






