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

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

Разработчик 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 секунд. За исключением некоторых сбоев в заголовке, результаты почти идеальны!

Заключение

Проект HastingsGreer показывает, что с помощью ИИ можно быстро создать простой веб-браузер. Однако, задача создания соответствующего стандартам веб-браузера, которому можно доверять в отношении вредоносного контента, остается титанической.

News Express Team
News Express Team

Команда News Express, состоящая из опытных редакторов и журналистов, предоставляет своевременные и надежные репортажи о российской политике, экономике, технологиях и мировых событиях с уникальной региональной точки зрения. Будьте в курсе событий с нашими преданными журналистами.

ru_RURU