AI prompts
base on # esp_webrtc_solution
## Introduction
This repository provides everything needed to build a WebRTC application.
It includes the `esp_webrtc` core code along with its dependent components, such as:
- **`esp_peer`**: WebRTC PeerConnection realization
- **`esp_capture`**: For capturing media data (moved to [esp_capture](https://components.espressif.com/components/espressif/esp_capture/))
- **`av_render`**: For playing media data
Additionally, the repository contains several demo applications that demonstrate how to use `esp_webrtc`.
## Solutions
### 1. OpenAI Realtime Communication Solution
This demo establishes a WebRTC connection to an OpenAI server for real-time communication.
It showcases how to use a customized signaling mechanism to build specialized WebRTC applications.
### 2. Doorbell Solution
This demo implements a doorbell application that can:
- Be controlled in real-time by a browser or phone
- Send real-time video data to a controller while supporting two-way audio communication
### 3. Peer Demo
This demo mainly show how to use `esp_peer` API to buildup a WebRTC application from scratch.
### 4. Video Call Solution
This demo show how to use `esp_webrtc` data channel to build up video call application.
### 5. WHIP Publisher Solution
This demo show how to use `esp_webrtc` to publish streaming data to WHIP server.
### 6. Doorbell Local Demo
This demo sets up a local doorbell application that operates without external signaling servers.
An ESP32 series board acts as the signaling server, allowing users to connect directly for WebRTC testing.
Meanwhile provide AI pedestrian detect capability in realtime.
", Assign "at most 3 tags" to the expected json: {"id":"13791","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"