Mehdi and all:
> I'm excited to share the third version of the deal.II Assistant, an agent-
> based, enhanced RAG virtual assistant designed to support users of the deal.II.
>
> This latest version now covers the entire deal.II documentation, including all
> 90 tutorials, the test suite, and the complete reference documentation.
> [...]
First, many thanks for making this resource available to the community!
I have wanted to give this a try since you first posted a link first, and
finally found the time to do so a couple of weeks ago. I am currently working
on a project (which will become step-91) in which I am simulating erosion
processes. I needed a function that figures out at which locations the
vertical elevation is a local maximum -- the mountain-tops of the elevation --
and thought that might make for a good example to try the Assistant. I had
just written the function myself, but thought I'd let the Assistant show me
how I could have done it, and to compare how long it would take.
My experience matches pretty closely that of others who have tried these
assistants in other contexts: The AI is pretty good at providing code outlines
for boiler-plate code that are syntactically mostly correct, and in which
function names and arguments are correct. But the algorithm is wrong if it is
not something that already exists elsewhere, which was the case for me: It
proposed an algorithm that on each cell found the DoF with the largest value.
But if that DoF lives on a vertex shared with other cells, that doesn't mean
that it's a local maximum. I pointed that out, and it gave me a different try
that was also wrong. We went around perhaps half a dozen times, but none of
the attempts was actually correct. None were even close -- perhaps not
surprisingly, since I don't think there's anything comparable in all of
deal.II (=the training set).
It is other words, the Assistant has great *recall*, but little *creativity*.
That's useful to accelerate routine set-up tasks, for which I definitely will
use it again -- say, how exactly again does one set up a parallel block vector
with ghost elements? Or, can you write the outline for assembling a matrix in
a nonlinear problem where one needs access to function values from the
previous iteration? But it doesn't reduce the need to creatively think about
algorithms for the *new* stuff -- any new algorithm that isn't already in the
code base and that is coming out of the Assistant is likely wrong; in any
case, one still needs to be able to *understand* the Assistant's output to
verify its correctness.
All that said, thank you again for providing this resource! I definitely think
that it has its place, and it was an enjoyable exercise to try it out!
Best
Wolfgang