I'm curious how the hallucination-free guarantee works? Does it only guarantee that the output is a subset of the input?
In the case of the male names, if I include a gender-neutral name like "Sam" does that include it because it is a male name, or exclude it because it is a female name? Can I set this to be inclusive or exclusive?
There is a filter for `createFilter` [1] and there is a throw if the index of the array doesn't exist for `createSelector` [2]. Maybe this is what the author refers to as hallucination-free, but falls pretty short.
How does this differ from function calling? For example, the basic enums example for Gemini function calling:
> color_temp: {
type: Type.STRING,
enum: ['daylight', 'cool', 'warm'],
description: 'Color temperature of the light fixture, which can be `daylight`, `cool` or `warm`.',
}
It can still hallucinate a response that is defined in the filter.
E.g if you have a filter with names of capital cities [“London”, “Paris”, “Madrid”] , and you ask “What is the capital of France” it could respond “Madrid”
Note that this is a very simple library and not very efficient. E.g. for the code that filters an array, it would run N prompts[1]:
`You are a filter agent.\nYour job is to return whether an item matches the criteria: ${criteria}\nRespond only with true or false.`
It's a cool demo, but I wouldn't use that in production; IMO having that code in a separate library offers little benefit and increases the risk of misuse.
11 comments
[ 3.8 ms ] story [ 29.4 ms ] threadIn the case of the male names, if I include a gender-neutral name like "Sam" does that include it because it is a male name, or exclude it because it is a female name? Can I set this to be inclusive or exclusive?
Looks interesting, though. Nice work.
[1]: https://github.com/montyanderson/incant/blob/master/mod.ts#L...
[2]: https://github.com/montyanderson/incant/blob/master/mod.ts#L...
> color_temp: { type: Type.STRING, enum: ['daylight', 'cool', 'warm'], description: 'Color temperature of the light fixture, which can be `daylight`, `cool` or `warm`.', }
https://ai.google.dev/gemini-api/docs/function-calling?examp...
It can still hallucinate a response that is defined in the filter.
E.g if you have a filter with names of capital cities [“London”, “Paris”, “Madrid”] , and you ask “What is the capital of France” it could respond “Madrid”
[1]: https://github.com/montyanderson/incant/blob/73606e826d6e5b0...