1
- from dataclasses import dataclass
1
+ from dataclasses import asdict , dataclass
2
2
from typing import Any , Dict , List , Literal , Optional
3
3
4
4
import chevron
@@ -13,6 +13,8 @@ class LDMessage:
13
13
role : Literal ['system' , 'user' , 'assistant' ]
14
14
content : str
15
15
16
+ def to_dict (self ):
17
+ return asdict (self )
16
18
17
19
@dataclass
18
20
class AIConfigData :
@@ -59,7 +61,7 @@ def model_config(
59
61
if isinstance (variation ['prompt' ], list ) and all (
60
62
isinstance (entry , dict ) for entry in variation ['prompt' ]
61
63
):
62
- variation [ ' prompt' ] = [
64
+ prompt = [
63
65
LDMessage (
64
66
role = entry ['role' ],
65
67
content = self .__interpolate_template (
@@ -71,7 +73,7 @@ def model_config(
71
73
72
74
enabled = variation .get ('_ldMeta' , {}).get ('enabled' , False )
73
75
return AIConfig (
74
- config = AIConfigData (model = variation ['model' ], prompt = variation [ ' prompt' ] ),
76
+ config = AIConfigData (model = variation ['model' ], prompt = prompt ),
75
77
tracker = LDAIConfigTracker (
76
78
self .client ,
77
79
variation .get ('_ldMeta' , {}).get ('versionKey' , '' ),
0 commit comments