Segment config goes on the route, not the actions file. Check the project default in settings. Then move the render off the request path anyway.
Yuri
@yaml_yuri
Has debugged more indentation than logic and made peace with it.
57 credit Contributor
- From answers
- 0
- From questions
- 57
The retrieved-chunks point deserves its own answer, because it is a ceiling on how much this can ever be worth for you.
In classic top-k RAG the chunks are the majority of the prompt and they differ per question by design. So even with everything configured perfectly, the cacheable share of 9,200 tokens might be 2,700 of it. Prompt caching pays enormously for long stable context - a large system prompt, an agent loop where the conversation history grows monotonically, twenty questions asked against one document: and modestly for retrieval.
Worth calibrating before you spend another week on it.
Measure this rather than eyeball it - log the token count of the prompt at every step. Mine looked fine until step 5, where one tool returned a 41k token file and every step after that was noticeably worse at following the plan.
Serverless would have absorbed this without any capacity planning at all. Worth considering before the next one.
40 pairs through a cross-encoder on CPU, one at a time, is genuinely a several-second operation. Nothing is broken, you just bought quality with latency at a bad exchange rate.
In order of return on effort:
- Retrieve fewer candidates. Top 40 to top 12 costs almost nothing in final quality if your embeddings are decent, and cuts rerank time by roughly a third of what you have. Measure it on your eval set rather than trusting me.
- Batch the forward pass. If you are looping over pairs you are paying per-call overhead 40 times. One batched pass over 12 pairs is a small fraction of 12 sequential ones, and this is usually a five line change.
- Truncate what you feed it. Attention cost grows faster than linearly with sequence length, so rerank on a 200 token window - heading plus the first couple of sentences - rather than the full 1,200 token chunk.
- Then, if it still matters, put it on a GPU or swap to a smaller reranker.
The first two together typically land you near 400ms. That is the same pipeline with the same model, just used properly.
Cache keyed on what? The query, which is different every time in a chat product. That works for a fixed FAQ or a set of canned reports and does nothing for open-ended questions, which is the case being described.
Works more often than people expect, especially with in-house recruiters who have the requisition open in another tab. Agency recruiters dodge it more.
The emotional version of this is predictable enough that you should plan for it in advance. Decide what you are working on for the two weeks after launch before launch day, while you still feel good, and write it down. Otherwise you spend those two weeks deciding what to do while feeling flat, which is the worst possible state in which to make a roadmap.
Those deliberately broken answers are the most valuable asset in this thread. Freeze them as a labelled regression set: known bad, with the reason. Then any judge you build has to separate known-good from known-bad before you are allowed to trust a single number it produces.
That is your judge's unit test, it runs in under a minute, and it catches the case where someone "improves" the judge prompt and quietly destroys its discrimination.
if you trust the tests you don't need review. if you don't trust the tests, fix the tests. review is a workaround for bad tests
Rear is the camera I have used in anger and the front is the one I have never needed. Two things decide whether it is worth having: the sensor, because most bundled rear cameras are a step or two below the front unit, and the placement. On a hatch the heated element lines will sit across the image if you mount it flat against the glass, so mount it between the lines or slightly below them and check the footage at night before you commit to the adhesive.
Whatever you pick, put a queue and a per-user rate limit in front of it before you tell eight people it exists. The failure mode is not the engine, it is one colleague pasting a 200 page PDF into it on Monday morning and everybody else concluding the tool is broken.
The session case is bigger than people expect. Median follow-up count in our document tool is 6, and caching alone took total spend down 55% with no change to what the model sees.
I would spend it exactly as you planned, for a reason that has nothing to do with writing systems code. The skill that has gone up in value for me is reading unfamiliar code fast and knowing when something is subtly wrong, and a language with an unforgiving compiler and explicit memory is the best teacher I know for that, because it makes the invisible things visible. After a serious stint with one, I started spotting problems in generated TypeScript that I had been waving through for years, particularly around ownership of mutable state. The language was almost incidental, the model of what can go wrong was the payoff.
Subtree rather than file is the bit I was missing. That explains why moving an import fixed it in a way that seemed like magic.
Passing server rendered content in as children is the escape hatch I did not know existed. That solves the three components I was about to duplicate.
At 800 rupees you have real options now that didn't exist five years ago, because the domestic derm-brand lines have caught up considerably on texture. The thing I'd check on the box is whether there's any UVA rating at all, because plenty of products sold locally are much stronger on UVB than on UVA.
Sponge filter on a small air pump, and it is not a compromise: for a nano tank it is the recommended answer, not the budget one. Flow is gentle by nature, shrimp cannot get pulled in, and you clean it by squeezing the sponge in a bucket of tank water, which leaves the bacterial colony essentially intact. Total spend should be well under your budget and the only ongoing cost is the odd length of airline.
Four weekends against $200 a month puts the break-even somewhere around never, when I put it like that.
Cases in the repo next to the prompt is the detail I would have got wrong. I was about to let the vendor own the test cases because their UI was nicer.
Instrument your own funnel and stop caring about the top number. Write a row when someone hits the landing page from a cheap server-side event, a row when they start signup, a row when they finish, a row on first meaningful action. Now every step is measured by the same instrument, so the ratios between steps are trustworthy even when the absolute numbers are wrong.
Analytics tools are for 'where did they come from'. Your database is for 'what happened next'. Making one do both is where the frustration comes from.
The rule that grew ours without anyone ever scheduling time for it: nothing gets marked fixed until there is a case in the set that fails before the fix and passes after. No exceptions, including for the founder.
We went from 14 cases to 140 in about eight months and every one of them corresponds to something a real person complained about. That also means the set is automatically weighted towards the things that break, which is the only weighting worth having.
Get the independent EICR before you choose. Mine came to about £180 and it turned a guess into a decision: the socket circuits tested clean apart from two minor codes and the lighting was as bad as the electrician suspected. Also ask whoever does the partial to run empty conduit or draw cords where the rest of the rewire would go later. Costs almost nothing on the day and saves a second round of channelling.