Создание простого браузера с помощью ИИ-агента ELIZA и языка C

Создание простого браузера с помощью ИИ-агента ELIZA и языка C
Создание простого браузера с помощью ИИ-агента ELIZA и языка C (image source)

Разработчик 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 показывает, что с помощью ИИ можно быстро создать простой веб-браузер. Однако, задача создания соответствующего стандартам веб-браузера, которому можно доверять в отношении вредоносного контента, остается титанической.

News Express Team
News Express Team

News Express' team of experienced editors and journalists delivers timely and reliable reporting on Russian politics, economics, technology and world affairs from a unique regional perspective. Stay informed with our dedicated journalists.

en_USEN