46 lines
855 B
Plaintext
46 lines
855 B
Plaintext
syntax = "v1"
|
|
|
|
type (
|
|
AICompleteReq {
|
|
Prompt string `json:"prompt"`
|
|
Model string `json:"model,optional"`
|
|
Meter string `json:"meter,optional"` // default ai_copy
|
|
}
|
|
|
|
AICompleteData {
|
|
Text string `json:"text"`
|
|
KeyMode string `json:"key_mode"`
|
|
Model string `json:"model"`
|
|
}
|
|
|
|
SearchReq {
|
|
Query string `json:"query"`
|
|
Limit int `json:"limit,optional"`
|
|
}
|
|
|
|
SearchHit {
|
|
Title string `json:"title"`
|
|
Url string `json:"url"`
|
|
Snippet string `json:"snippet"`
|
|
}
|
|
|
|
SearchData {
|
|
List []SearchHit `json:"list"`
|
|
KeyMode string `json:"key_mode"`
|
|
}
|
|
)
|
|
|
|
@server (
|
|
jwt: Auth
|
|
group: proxy
|
|
prefix: /api/v1/proxy
|
|
middleware: AuthJWT
|
|
)
|
|
service gateway {
|
|
@handler AIComplete
|
|
post /ai/complete (AICompleteReq) returns (AICompleteData)
|
|
|
|
@handler ExaSearch
|
|
post /search (SearchReq) returns (SearchData)
|
|
}
|