Parece bem simples. Eu cheguei a usar o chat completation, mas vou tirar tempo para ler o seu código.

É bem simples, vale apena saber que existe essa possibilidade de trazer um conhecimento específico para uma LLM.