My top 19 key points of a GenAI project
The specifics of GenAI projects I wish I'd known two years ago.
As in any field in IT, there are specifics around GenAI projects.
Here’s my top 19 key points not to forget:
- De-risk as much as possible with POCs, ideally without code (provider playground or no-code tools like Flowise, Vectorshift).
- Test several agent architectures / ways of splitting responsibilities between agents (again, ideally without writing code).
- Agree on how responses are structured (with or without JSON? which format? Better not to lock the structure too strictly at this stage of the project).
- Improve the base for the system prompts, without over-refining them (the base should already be in place at this step), especially inter-agent communication.
- Choose your AI provider(s).
- Adjust the system prompt depending on the provider. E.g.: Claude XML, few-shot less effective, etc.
- Create/define/code the agents; choose a framework like LangChain (or not, but at least make a conscious choice).
- Certify the structuring of the outputs (structured_output, record_summary, output verification lib, etc.). Define the strategies: retry? auto-correction?
- Start automated testing (integration tests with LLM as Judge). At this stage, the risk is still high of having to drop parts of the project because of a provider’s new features or a functional pivot if the generative part doesn’t meet expectations.
- Depending on the system, you’re between 50 and 70% satisfactory responses at this point in the project; the goal is to reach +80 or 90% satisfaction (even if hard to measure).
- Use or build tools to make QA and debugging easier on deployed envs (internal playground, monitoring tools).
- Warm up API keys: good practice.
- Set up a Grader (evaluator agent). At this stage, you start generating results in QA or even beta, so it’s crucial not to lose information. Ideally a system that gives a clear view of the success rate of each use of the system.
- Start investing in failover systems or retry strategies (a non-negligible part of the success rate lies in the providers’ API success rates, which honestly aren’t great).
- Make system prompts dynamic depending on context (via RAG or other).
- Add a user rating system.
Security layer:
- Enforce data partitioning, physical if possible.
- Add protection layers to refuse to respond to prompt injections.
- Integrate a monitoring system to detect injections.
I really wish I’d had this top list 2 years ago.