Coverage for /home/admin/Documents/AI/applications/lexigram-dev/lexigram/experimental/ai/lexigram-ai-llm/src/lexigram/ai/llm/structured/__init__.py: 100%

4 statements  

« prev     ^ index     » next       coverage.py v7.15.4, created at 2026-08-25 07:19 +0800

1"""Structured output extraction from LLM responses. 

2 

3Public API 

4---------- 

5StructuredExtractor: 

6 Core class — wraps an LLM client and extracts validated, typed objects. 

7 

8 Example:: 

9 

10 from lexigram.ai.llm.structured import StructuredExtractor 

11 from pydantic import BaseModel 

12 

13 class Reply(BaseModel): 

14 summary: str 

15 confidence: float 

16 

17 extractor = StructuredExtractor(llm_client) 

18 result = await extractor.extract( 

19 prompt="Summarise this ticket.", 

20 output_model=Reply, 

21 ) 

22 

23Parser helpers (advanced / testing use): 

24 extract_json_block: Pull JSON out of raw LLM output (strips fences, etc.) 

25 validate_against_model: Validate a dict against a Pydantic / dataclass model. 

26 build_json_schema: Generate a JSON Schema dict from a model class. 

27""" 

28 

29from __future__ import annotations 

30 

31from lexigram.ai.llm.structured.extractor import StructuredExtractor 

32from lexigram.ai.llm.structured.parser import ( 

33 build_json_schema, 

34 extract_json_block, 

35 validate_against_model, 

36) 

37 

38__all__ = [ 

39 "StructuredExtractor", 

40 "build_json_schema", 

41 "extract_json_block", 

42 "validate_against_model", 

43]