Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes dottxt-ai#684
Fixes dottxt-ai#959
Fixes dottxt-ai#885
Problem
CFG
would encounter runtime errors inmain
regularly to the point that it rarely succeeds.No terminal matches 'e' in the current parser context
cfg
due to inconsistent meaning ofis_final_state
. In some portions of the code it means must terminate, in others it means may terminate.Solution
Reimplement
outlines.fsm.guide.CFGGuide
usingoutlines.fsm.parsing.PartialLark
. Credit to Brandon Willard for creating a robust module to handle our CFG structured generation needs.CFGGuide
Grammars
outlines.grammars.sql_select
. enabling integration testing with a more complex grammarTesting
outlines.grammars
(arithmetic
,json
,sql_select
)TODO
generate.cfg
outlines.grammars
, Benchmark and Verify Their Integrity dottxt-ai/outlines#587outlines.processors
outlines.processors.CFGLogitsProcessor
PartialLark.open_from_package
, it has undesired side effects