| .. | ||
| cmd/edge | ||
| internal | ||
| README.md | ||
edge — Edge API Gateway
외부 클라이언트에 OpenAI-compatible HTTP API를 노출하고,
IOP 내부 TCP 프로토콜을 통해 node로 요청을 라우팅한다.
현재 상태: 초기 구현 node 등록/레지스트리/transport와 edge 콘솔 기반 수동 통신 테스트가 구현되어 있다.
원격 edge-node 수동 테스트
bin/edge.sh는 edge 서버를 열고 입력 프롬프트를 제공한다.
bin/node.sh는 원격 edge 주소로 접속해 등록한 뒤, edge에서 보낸 RunRequest를 mock adapter로 실행한다.
테스트 파라미터는 configs/edge.yaml, configs/node.yaml에 하드코딩한다.
실행 순서:
- edge 호스트에서
configs/edge.yaml의server.listen,nodes[].token,console.adapter,console.model을 확인한다. - node 호스트에서
configs/node.yaml의transport.edge_addr를 edge 호스트 주소로,transport.token을 edge token과 같게 맞춘다. - edge 호스트의
9090/tcp포트를 node 호스트에서 접근 가능하게 연다. - edge 호스트에서
./bin/edge.sh - node 호스트에서
./bin/node.sh - edge 콘솔에서
/nodes로 node 등록을 확인한다. - edge 콘솔의
edge>프롬프트에 메시지를 입력한다. [node-{alias}-event]라인으로 실행 상태를,[node-{alias}-message]라인으로 실제 응답을 확인한다.- edge 콘솔에서
/exit또는quit로 종료한다.
예상 출력:
edge> hello
[edge] sent run_id=manual-... node=local-node adapter=mock model=mock-echo
[node-local-node-event] start run_id=manual-...
[node-local-node-event] complete run_id=manual-... detail="mock execution complete"
[node-local-node-message] echo: hello
프롬프트 없이 TCP/protobuf edge 서버만 실행하려면 기존처럼 go run ./apps/edge/cmd/edge serve -c configs/edge.yaml를 사용한다.
계획된 기능
POST /v1/chat/completions— OpenAI-compatible chatGET /v1/models— 사용 가능한 모델 목록- 인증 (API Key / JWT)
- 노드 선택 및 로드밸런싱
- 스트리밍 SSE 프록시