|
|
|
|
package katago
|
|
|
|
|
|
|
|
|
|
type BaseResp struct {
|
|
|
|
|
ID string `json:"id"` // ID 必有
|
|
|
|
|
Action string `json:"action,omitempty,optional"` // Action 动作,不是必填值
|
|
|
|
|
// 其它东西,通过组合
|
|
|
|
|
Err error
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type QueryResp struct {
|
|
|
|
|
BaseResp
|
|
|
|
|
IsDuringSearch bool `json:"isDuringSearch"` // 是否是搜索的过程结果,发送时指定 reportDuringSearchEvery,则会在过程中进行回复
|
|
|
|
|
TurnNumber int32 `json:"turnNumber"` // 正在分析的回合数(手数)
|
|
|
|
|
MoveInfos []struct {
|
|
|
|
|
Move string `json:"move"` // 正在分析的移动,通常为棋盘坐标
|
|
|
|
|
Visits int32 `json:"visits"` // 访问次数(神经网络)
|
|
|
|
|
WinRate float64 `json:"winrate"` // 胜率 [0~1] [0%~100%] 越高越好
|
|
|
|
|
ScoreMean float64 `json:"scoreMean"` // 预计平均分
|
|
|
|
|
ScoreLead float64 `json:"scoreLead"` // 预计平均分 与 ScoreMean 一致
|
|
|
|
|
ScoreStdev float64 `json:"scoreStdev"` // 预计平均分标准差,由于MCTS机制,该分值可能偏高
|
|
|
|
|
ScoreSelfplay float64 `json:"scoreSelfplay"` // 自我对弈时的预计分数,该值目前偏高
|
|
|
|
|
Prior float64 `json:"prior"` // 策略优先级 [0~1],通常会选优先级高的下棋(直觉)
|
|
|
|
|
Utility float64 `json:"utility"` // 综合效用值,结合winrate和score,值域 [-C,C]
|
|
|
|
|
Lcb float64 `json:"lcb"` // LCB胜率,但值可能有误 [0~1] 可能会越界
|
|
|
|
|
UtilityLcb float64 `json:"utilityLcb"` // LCB综合效用值
|
|
|
|
|
Weight float64 `json:"weight"` // Visits 的平均权重
|
|
|
|
|
Order int32 `json:"order"` // Katago神经网络中的直觉优先级,值[0~max]越低,优先级越高
|
|
|
|
|
PV []string `json:"pv"` // 此次移动之后预测之后的移动列表
|
|
|
|
|
// PvVisits
|
|
|
|
|
// pvEdgeVisits
|
|
|
|
|
// ownership
|
|
|
|
|
// ownershipStdev
|
|
|
|
|
} `json:"moveInfos"` // 移动信息
|
|
|
|
|
RootInfo struct {
|
|
|
|
|
ThisHash string `json:"thisHash"` // 本次移动的唯一编码
|
|
|
|
|
SymHash string `json:"symHash"` //
|
|
|
|
|
CurrentPlayer string `json:"currentPlayer"` // "B" or "W"
|
|
|
|
|
// RawStWrError
|
|
|
|
|
// rawStScoreError
|
|
|
|
|
// rawVarTimeLeft
|
|
|
|
|
Visits int32 `json:"visits"` // 访问次数(神经网络)
|
|
|
|
|
WinRate float64 `json:"winrate"` // 胜率 [0~1] [0%~100%] 越高越好
|
|
|
|
|
ScoreLead float64 `json:"scoreLead"` // 预计平均分 与 ScoreMean 一致
|
|
|
|
|
ScoreSelfplay float64 `json:"scoreSelfplay"` // 自我对弈时的预计分数,该值目前偏高
|
|
|
|
|
Utility float64 `json:"utility"` // 综合效用值,结合winrate和score,值域 [-C,C]
|
|
|
|
|
} `json:"rootInfo"` // 根信息
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type QueryVersionResp struct {
|
|
|
|
|
BaseResp
|
|
|
|
|
GitHash string `json:"git_hash"` // GitHash
|
|
|
|
|
Version string `json:"version"` // 版本号
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type ClearCacheResp struct {
|
|
|
|
|
BaseResp
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type TerminateResp struct {
|
|
|
|
|
BaseResp
|
|
|
|
|
IsDuringSearch bool `json:"isDuringSearch"` // 是否是搜索的过程结果,发送时指定 reportDuringSearchEvery,则会在过程中进行回复
|
|
|
|
|
TurnNumber int64 `json:"turnNumber"` // 本次停止的回合数
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type TerminateAllResp struct {
|
|
|
|
|
BaseResp
|
|
|
|
|
TurnNumbers []int64 `json:"turnNumbers"` // 本次停止的回合数
|
|
|
|
|
}
|