Hi!
On Sat, May 16, 2015 at 04:29:48PM -0700, Sean Gallagher wrote:
> If you have some idea what a REST API for this should look like, I can try
> to implement it as well. What I had before (without websockets) only had
> one route: /ask?query=...
The current REST API of YodaQA is:
POST /q with text=... starts the answering process
return value is id of the question (this might be
changed to a JSON reply yet)
GET /q/<id> returns current status of the question in JSON
e.g.
http://pasky.or.cz:4567/q/599112306
> The scores we're outputting are normalized but not filtered through any
> logistic regression. (We use a number of models actually, but logistic
> regression is not one of them anymore; in my measurements it performed
> worse than SVM, neural nets, or random forests. We changed it quite a few
> months ago, so if you're interested, I can retrain it and show the
> difference.
Ah, I completely forgot but I've read about this on your blog before,
that's right. I'm probably getting slightly better performance with
gradient-boosted random forests, but failed to get an improvement
against logistic regression by using SVMs. I will take a closer look
at how did you achieve this.
> I'd also be curious to see how you plan to handle multiple requests at
> once. I wanted to use one pipeline per query but the overhead is just too
> large and it wastes cache. So instead I have the pipelines stay put and
> pass around logs (which are operating more as unix pipes or go channels).
The requests just sit in a queue at this point, and I have
a centralized dashboard where their intermediate progress is recorded.
I didn't think yet about scaling this up to multiple questions at once,
I think that I should first optimize the time taken to answer one
question.
Petr Baudis