Multi-position endpoint
Closed this issue · 2 comments
I am doing opening analysis using these endpoints, and very easily hitting the rate limit. The responses seem to be pretty quick, so I was wondering if we could add some multi-position endpoints.
I can PR something in time as I get my rust tooling up to date, but all it really needs to be is something like Query<Vec<LichessQuery>>
instead of Query<LichessQuery>
and similar for the response with maybe a simple integer limit on how many of the input vector are processed.
For reference this is useful for doing something like Stockfish does for scoring, but with win/loss%, expanding the tree to a certain number of nodes, and then pruning based on best decision-making and win/loss % weighted by probabilities of seeing the response, but even being greedy with win% (and avoiding all of the above) quickly hits rate limits in any trivial opening repertoire.
The bottleneck for the server as deployed on explorer.lichess.ovh is disk i/o, so unfortunately saving HTTP requests would not help.
Have you considered running a local instance, maybe indexing just a few months? It needs about 3x as much disk space as the .pgn.zst archives.
Thanks for the response! Makes plenty of sense that the bottleneck is disk i/o, and maybe what I should do is use the API for deeper lines (where many more games will be necessary to have statistically significant percentages), but use a local db for the shallower, more common lines.