typia 7.0.0-dev.20241128 → 7.0.0-dev.20241130
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -2
- package/lib/factories/MetadataCollection.d.ts +1 -1
- package/lib/factories/MetadataCollection.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_intersection.js +10 -9
- package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -1
- package/lib/programmers/llm/LlmApplicationProgrammer.js +31 -31
- package/lib/programmers/llm/LlmApplicationProgrammer.js.map +1 -1
- package/lib/programmers/llm/LlmParametersProgrammer.js +8 -1
- package/lib/programmers/llm/LlmParametersProgrammer.js.map +1 -1
- package/lib/programmers/llm/LlmSchemaProgrammer.js +8 -1
- package/lib/programmers/llm/LlmSchemaProgrammer.js.map +1 -1
- package/package.json +2 -2
- package/src/factories/MetadataCollection.ts +1 -3
- package/src/factories/internal/metadata/iterate_metadata_intersection.ts +11 -9
- package/src/programmers/llm/LlmApplicationProgrammer.ts +61 -56
- package/src/programmers/llm/LlmParametersProgrammer.ts +10 -1
- package/src/programmers/llm/LlmSchemaProgrammer.ts +10 -1
- package/src/schemas/metadata/IMetadataApplication.ts +7 -7
- package/src/schemas/metadata/MetadataApplication.ts +44 -44
- package/src/schemas/metadata/MetadataAtomic.ts +87 -87
package/README.md
CHANGED
|
@@ -22,7 +22,7 @@ export namespace json {
|
|
|
22
22
|
export function assertStringify<T>(input: T): string; // safe and faster
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
// LLM FUNCTION CALLING
|
|
25
|
+
// LLM FUNCTION CALLING SCHEMA
|
|
26
26
|
export namespace llm {
|
|
27
27
|
// application schema from a class or interface type
|
|
28
28
|
export function application<App, Model>(): ILlmApplication<Model>;
|
|
@@ -46,7 +46,7 @@ Typia is a transformer library supporting below features:
|
|
|
46
46
|
|
|
47
47
|
- Super-fast Runtime Validators
|
|
48
48
|
- Enhanced JSON functions
|
|
49
|
-
- LLM function calling application
|
|
49
|
+
- LLM function calling application schema
|
|
50
50
|
- Protocol Buffer encoder and decoder
|
|
51
51
|
- Random data generator
|
|
52
52
|
|
|
@@ -103,6 +103,7 @@ Check out the document in the [website](https://typia.io/docs/):
|
|
|
103
103
|
- [`parse()` functions](https://typia.io/docs/json/parse/)
|
|
104
104
|
- LLM Function Calling
|
|
105
105
|
- [`application()` function](https://typia.io/docs/llm/application/)
|
|
106
|
+
- [`parameters()` function](https://typia.io/docs/llm/parameters/)
|
|
106
107
|
- [`schema()` function](https://typia.io/docs/llm/schema/)
|
|
107
108
|
- Protocol Buffer
|
|
108
109
|
- [Message Schema](https://typia.io/docs/protobuf/message)
|
|
@@ -6,7 +6,7 @@ import { MetadataArrayType } from "../schemas/metadata/MetadataArrayType";
|
|
|
6
6
|
import { MetadataObjectType } from "../schemas/metadata/MetadataObjectType";
|
|
7
7
|
import { MetadataTupleType } from "../schemas/metadata/MetadataTupleType";
|
|
8
8
|
export declare class MetadataCollection {
|
|
9
|
-
private
|
|
9
|
+
private options?;
|
|
10
10
|
private objects_;
|
|
11
11
|
private object_unions_;
|
|
12
12
|
private aliases_;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetadataCollection.js","sourceRoot":"","sources":["../../src/factories/MetadataCollection.ts"],"names":[],"mappings":";;;AAIA,6EAA0E;AAC1E,6EAA0E;AAC1E,+EAA4E;AAC5E,6EAA0E;AAE1E,kDAA+C;AAE/C,8CAA2C;AAE3C,qDAAkD;AAClD,+CAA4C;AAE5C,MAAa,kBAAkB;IAY7B,
|
|
1
|
+
{"version":3,"file":"MetadataCollection.js","sourceRoot":"","sources":["../../src/factories/MetadataCollection.ts"],"names":[],"mappings":";;;AAIA,6EAA0E;AAC1E,6EAA0E;AAC1E,+EAA4E;AAC5E,6EAA0E;AAE1E,kDAA+C;AAE/C,8CAA2C;AAE3C,qDAAkD;AAClD,+CAA4C;AAE5C,MAAa,kBAAkB;IAY7B,YAA2B,OAA8C;QAA9C,YAAO,GAAP,OAAO,CAAuC;QACvE,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,EAAE,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;QAEzB,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC;IAClC,CAAC;IAEM,KAAK;QACV,MAAM,MAAM,GAAuB,IAAI,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxE,MAAM,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,CAAC,cAAc,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACrD,MAAM,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,CAAC,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,CAAC,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QAC1C,MAAM,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC;QAC5D,MAAM,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC;QAC5D,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;oEAEgE;IACzD,OAAO;QACZ,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACrC,CAAC;IAEM,OAAO;QACZ,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACrC,CAAC;IAEM,MAAM;QACX,OAAO,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3C,CAAC;IAEM,MAAM;QACX,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACpC,CAAC;IAEM,MAAM;QACX,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACpC,CAAC;IAEO,OAAO,CAAC,OAAuB,EAAE,IAAa;QACpD,MAAM,IAAI,GAAW,CAAC,GAAG,EAAE;;YACzB,MAAM,GAAG,GAAW,yBAAW,CAAC,WAAW,CAAC;gBAC1C,OAAO;gBACP,IAAI;aACL,CAAC,CAAC;YACH,OAAO,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,OAAO,EAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACjE,CAAC,CAAC,EAAE,CAAC;QAEL,MAAM,UAAU,GAAyB,iBAAO,CAAC,IAAI,CACnD,IAAI,CAAC,MAAM,EACX,IAAI,EACJ,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAChB,CAAC;QACF,MAAM,MAAM,GAAuB,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC;QAExC,MAAM,QAAQ,GAAW,UAAU,CAAC,IAAI;YACtC,CAAC,CAAC,GAAG,IAAI,KAAK,UAAU,CAAC,IAAI,EAAE;YAC/B,CAAC,CAAC,IAAI,CAAC;QACT,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC/B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACI,aAAa,CAAC,IAAc;QACjC,MAAM,GAAG,GAAW,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzE,iBAAO,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,EAAE,GAAG,EAAE,CAC1C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAChC,CAAC;QACF,OAAO,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtD,CAAC;IAED;;oEAEgE;IACzD,OAAO,CACZ,OAAuB,EACvB,IAAa;;QAEb,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAEjD,MAAM,EAAE,GAAW,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAuB,uCAAkB,CAAC,MAAM,CAAC;YACxD,IAAI,EAAE,EAAE;YACR,UAAU,EAAE,EAAE;YACd,WAAW,EACT,MAAA,MAAA,CAAC,IAAI,CAAC,WAAW,IAAI,+BAAc,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,mCAClE,CAAC,IAAI,CAAC,MAAM,IAAI,+BAAc,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,mCACxD,SAAS;YACX,SAAS,EACP,MAAA,MAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,YAAY,EAAE,mCAAI,MAAA,IAAI,CAAC,MAAM,0CAAE,YAAY,EAAE,mCAAI,EAAE;YACvE,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE;YAC3B,SAAS,EAAE,IAAK;YAChB,SAAS,EAAE,EAAE;SACd,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC7B,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACrB,CAAC;IAEM,YAAY,CACjB,OAAuB,EACvB,IAAa,EACb,MAAiB;;QAEjB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAE3D,MAAM,EAAE,GAAW,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAsB,qCAAiB,CAAC,MAAM,CAAC;YACxD,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,IAAK;YACZ,WAAW,EAAE,MAAA,+BAAc,CAAC,WAAW,CAAC,MAAM,CAAC,mCAAI,IAAI;YACvD,SAAS,EAAE,IAAK;YAChB,SAAS,EAAE,EAAE;YACb,SAAS,EAAE,MAAA,MAAM,CAAC,YAAY,EAAE,mCAAI,EAAE;SACvC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/B,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAA,mBAAQ,EAAC,KAAK,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;IACjE,CAAC;IAEM,YAAY,CACjB,OAAuB,EACvB,IAAa;QAEb,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAE3D,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACvC,MAAM,KAAK,GAAsB,qCAAiB,CAAC,MAAM,CAAC;YACxD,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,IAAK;YACZ,KAAK,EAAE,IAAI;YACX,SAAS,EAAE,IAAK;YAChB,SAAS,EAAE,EAAE;SACd,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC9B,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAA,mBAAQ,EAAC,KAAK,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;IACjE,CAAC;IAEM,YAAY,CACjB,OAAuB,EACvB,IAAkB;QAElB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAE3D,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACvC,MAAM,KAAK,GAAsB,qCAAiB,CAAC,MAAM,CAAC;YACxD,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,IAAK;YACf,KAAK,EAAE,IAAI;YACX,SAAS,EAAE,IAAK;YAChB,SAAS,EAAE,EAAE;SACd,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC9B,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAA,mBAAQ,EAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED;;OAEG;IACI,kBAAkB,CAAC,GAAuB,EAAE,SAAkB;QACnE,IAAA,mBAAQ,EAAC,GAAG,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC;IACtC,CAAC;IAED;;OAEG;IACI,iBAAiB,CAAC,KAAwB,EAAE,SAAkB;QACnE,IAAA,mBAAQ,EAAC,KAAK,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC;IACxC,CAAC;IAED;;OAEG;IACI,iBAAiB,CAAC,KAAwB,EAAE,SAAkB;QACnE,IAAA,mBAAQ,EAAC,KAAK,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC;QACtC,IAAI,SAAS;YAAE,IAAA,mBAAQ,EAAC,KAAK,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;IACvE,CAAC;IAEM,iBAAiB,CAAC,KAAwB,EAAE,SAAkB;QACnE,IAAA,mBAAQ,EAAC,KAAK,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC;QACtC,IAAI,SAAS;YAAE,IAAA,mBAAQ,EAAC,KAAK,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;IACvE,CAAC;IAEM,MAAM;QACX,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YAC9C,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YAC9C,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YACzD,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SAC1D,CAAC;IACJ,CAAC;CACF;AA5ND,gDA4NC;AACD,WAAiB,kBAAkB;IAKpB,0BAAO,GAAG,CAAC,GAAW,EAAU,EAAE;QAC7C,IAAI,QAAQ,GAAW,GAAG,CAAC;QAC3B,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,SAAS;YAC9B,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,QAAQ,CAAC;QAE3C,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,SAAS;YACrC,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtC,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IAEW,yBAAM,GAAG,CAAC,GAAW,EAAU,EAAE;QAC5C,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,SAAS;YACrC,IAAI,KAAK,KAAK,EAAE;gBAAE,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;AACJ,CAAC,EArBgB,kBAAkB,kCAAlB,kBAAkB,QAqBlC;AACD,MAAM,SAAS,GAAuB;IACpC,CAAC,GAAG,EAAE,UAAU,CAAC;IACjB,CAAC,GAAG,EAAE,OAAO,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,OAAO,CAAC;IACd,CAAC,GAAG,EAAE,OAAO,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,OAAO,CAAC;IACd,CAAC,GAAG,EAAE,OAAO,CAAC;IACd,CAAC,GAAG,EAAE,SAAS,CAAC;IAChB,CAAC,GAAG,EAAE,aAAa,CAAC;IACpB,CAAC,GAAG,EAAE,eAAe,CAAC;IACtB,CAAC,GAAG,EAAE,eAAe,CAAC;IACtB,CAAC,GAAG,EAAE,SAAS,CAAC;IAChB,CAAC,GAAG,EAAE,YAAY,CAAC;IACnB,CAAC,GAAG,EAAE,SAAS,CAAC;IAChB,CAAC,GAAG,EAAE,aAAa,CAAC;CACrB,CAAC"}
|
|
@@ -11,21 +11,22 @@ const iterate_metadata_intersection = (props) => {
|
|
|
11
11
|
return false;
|
|
12
12
|
// COSTRUCT FAKE METADATA LIST
|
|
13
13
|
const commit = props.collection.clone();
|
|
14
|
+
props.collection["options"] = undefined;
|
|
14
15
|
const fakeErrors = [];
|
|
15
16
|
const children = props.type.types.map((t) => (0, explore_metadata_1.explore_metadata)(Object.assign(Object.assign({}, props), { options: Object.assign(Object.assign({}, props.options), { absorb: true, functional: false }), collection: props.collection, errors: fakeErrors, type: t, explore: Object.assign(Object.assign({}, props.explore), { aliased: false }), intersected: false })));
|
|
16
17
|
// ERROR OR ANY TYPE CASE
|
|
17
|
-
const escape = () => {
|
|
18
|
+
const escape = (out) => {
|
|
18
19
|
Object.assign(props.collection, commit);
|
|
19
|
-
return
|
|
20
|
+
return out;
|
|
20
21
|
};
|
|
21
22
|
if (fakeErrors.length) {
|
|
22
23
|
props.errors.push(...fakeErrors);
|
|
23
|
-
return true;
|
|
24
|
+
return escape(true);
|
|
24
25
|
}
|
|
25
26
|
else if (children.length === 0)
|
|
26
|
-
return escape();
|
|
27
|
+
return escape(false);
|
|
27
28
|
else if (children.some((m) => m.any === true || m.size() === 0))
|
|
28
|
-
return escape();
|
|
29
|
+
return escape(false);
|
|
29
30
|
// PREPARE MEATDATAS AND TAGS
|
|
30
31
|
const indexes = [];
|
|
31
32
|
const metadatas = [];
|
|
@@ -46,7 +47,7 @@ const iterate_metadata_intersection = (props) => {
|
|
|
46
47
|
explore: Object.assign({}, props.explore),
|
|
47
48
|
messages: ["nonsensible intersection"],
|
|
48
49
|
});
|
|
49
|
-
return true;
|
|
50
|
+
return escape(true);
|
|
50
51
|
};
|
|
51
52
|
// NO METADATA CASE
|
|
52
53
|
if (metadatas.length === 0)
|
|
@@ -56,14 +57,14 @@ const iterate_metadata_intersection = (props) => {
|
|
|
56
57
|
explore: Object.assign({}, props.explore),
|
|
57
58
|
messages: ["type tag cannot be standalone"],
|
|
58
59
|
});
|
|
59
|
-
return true;
|
|
60
|
+
return escape(true);
|
|
60
61
|
}
|
|
61
62
|
else
|
|
62
|
-
return escape();
|
|
63
|
+
return escape(false);
|
|
63
64
|
// ONLY OBJECTS CASE
|
|
64
65
|
else if (metadatas.every((m) => m.objects.length === 1) &&
|
|
65
66
|
tagObjects.length === 0)
|
|
66
|
-
return escape();
|
|
67
|
+
return escape(false);
|
|
67
68
|
else if (metadatas.length !== 1) {
|
|
68
69
|
const indexes = metadatas
|
|
69
70
|
.map((m, i) => m.size() === 1 &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iterate_metadata_intersection.js","sourceRoot":"","sources":["../../../../src/factories/internal/metadata/iterate_metadata_intersection.ts"],"names":[],"mappings":";;;AAOA,yEAAsE;AAEtE,yDAAsD;AACtD,yDAAsD;AAE/C,MAAM,6BAA6B,GAAG,CAC3C,KAA6B,EACpB,EAAE;IACX,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;SACxC,IAAI,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IAE7D,8BAA8B;IAC9B,MAAM,MAAM,GAAuB,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC5D,MAAM,UAAU,GAA6B,EAAE,CAAC;IAChD,MAAM,QAAQ,GAAe,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACtD,IAAA,mCAAgB,kCACX,KAAK,KACR,OAAO,kCACF,KAAK,CAAC,OAAO,KAChB,MAAM,EAAE,IAAI,EACZ,UAAU,EAAE,KAAK,KAEnB,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,CAAC,EACP,OAAO,kCACF,KAAK,CAAC,OAAO,KAChB,OAAO,EAAE,KAAK,KAEhB,WAAW,EAAE,KAAK,IAClB,CACH,CAAC;IAEF,yBAAyB;IACzB,MAAM,MAAM,GAAG,
|
|
1
|
+
{"version":3,"file":"iterate_metadata_intersection.js","sourceRoot":"","sources":["../../../../src/factories/internal/metadata/iterate_metadata_intersection.ts"],"names":[],"mappings":"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"}
|
|
@@ -88,30 +88,42 @@ var LlmApplicationProgrammer;
|
|
|
88
88
|
});
|
|
89
89
|
if (errors.length)
|
|
90
90
|
throw new Error("Failed to write LLM application: " + errors.join("\n"));
|
|
91
|
+
const errorMessages = [];
|
|
91
92
|
const application = JsonApplicationProgrammer_1.JsonApplicationProgrammer.write({
|
|
92
93
|
version: "3.1",
|
|
93
94
|
metadata: props.metadata,
|
|
94
95
|
});
|
|
96
|
+
const functions = application.functions.map((func) => writeFunction({
|
|
97
|
+
model: props.model,
|
|
98
|
+
components: application.components,
|
|
99
|
+
function: func,
|
|
100
|
+
errors: errorMessages,
|
|
101
|
+
}));
|
|
102
|
+
if (functions.some((func) => func === null))
|
|
103
|
+
throw new Error("Failed to write LLM application:\n\n" +
|
|
104
|
+
errorMessages.map((str) => ` - ${str}`).join("\n"));
|
|
95
105
|
return {
|
|
96
106
|
model: props.model,
|
|
97
107
|
options: Object.assign(Object.assign(Object.assign({}, LlmSchemaConverter_1.LlmSchemaConverter.defaultConfig(props.model)), props.config), { separate: null }),
|
|
98
|
-
functions:
|
|
99
|
-
model: props.model,
|
|
100
|
-
components: application.components,
|
|
101
|
-
function: func,
|
|
102
|
-
})),
|
|
108
|
+
functions: functions,
|
|
103
109
|
};
|
|
104
110
|
};
|
|
105
111
|
const writeFunction = (props) => {
|
|
106
112
|
var _a, _b, _c, _d;
|
|
107
|
-
const parameters = writeParameters(props);
|
|
113
|
+
const parameters = writeParameters(Object.assign(Object.assign({}, props), { accessor: `$input.${props.function.name}.parameters` }));
|
|
114
|
+
if (parameters === null)
|
|
115
|
+
return null;
|
|
108
116
|
const output = writeOutput({
|
|
109
117
|
model: props.model,
|
|
110
118
|
parameters,
|
|
111
119
|
components: props.components,
|
|
112
120
|
schema: (_b = (_a = props.function.output) === null || _a === void 0 ? void 0 : _a.schema) !== null && _b !== void 0 ? _b : null,
|
|
121
|
+
errors: props.errors,
|
|
122
|
+
accessor: `$input.${props.function.name}.output`,
|
|
113
123
|
});
|
|
114
|
-
if (output
|
|
124
|
+
if (output === null)
|
|
125
|
+
return null;
|
|
126
|
+
else if (output &&
|
|
115
127
|
output.description === undefined &&
|
|
116
128
|
!!((_d = (_c = props.function.output) === null || _c === void 0 ? void 0 : _c.description) === null || _d === void 0 ? void 0 : _d.length))
|
|
117
129
|
output.description = props.function.output.description;
|
|
@@ -137,41 +149,29 @@ var LlmApplicationProgrammer;
|
|
|
137
149
|
};
|
|
138
150
|
};
|
|
139
151
|
const writeParameters = (props) => {
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
p.name,
|
|
146
|
-
Object.assign(Object.assign({}, p.schema), { title: (_a = p.title) !== null && _a !== void 0 ? _a : p.schema.title, description: (_b = p.description) !== null && _b !== void 0 ? _b : p.schema.description }),
|
|
147
|
-
];
|
|
148
|
-
})),
|
|
149
|
-
required: props.function.parameters
|
|
150
|
-
.filter((p) => p.required)
|
|
151
|
-
.map((p) => p.name),
|
|
152
|
-
additionalProperties: false,
|
|
153
|
-
};
|
|
154
|
-
const parameters = LlmSchemaConverter_1.LlmSchemaConverter.parameters(props.model)({
|
|
152
|
+
var _a;
|
|
153
|
+
const schema = (_a = props.function.parameters[0]) === null || _a === void 0 ? void 0 : _a.schema;
|
|
154
|
+
if (!schema)
|
|
155
|
+
return null;
|
|
156
|
+
return LlmSchemaConverter_1.LlmSchemaConverter.parameters(props.model)({
|
|
155
157
|
config: LlmSchemaConverter_1.LlmSchemaConverter.defaultConfig(props.model),
|
|
156
158
|
components: props.components,
|
|
157
|
-
schema,
|
|
159
|
+
schema: schema,
|
|
160
|
+
errors: props.errors,
|
|
161
|
+
accessor: props.accessor,
|
|
158
162
|
});
|
|
159
|
-
if (parameters === null)
|
|
160
|
-
throw new Error("Failed to write LLM application parameters.");
|
|
161
|
-
return parameters;
|
|
162
163
|
};
|
|
163
164
|
const writeOutput = (props) => {
|
|
164
165
|
if (props.schema === null)
|
|
165
|
-
return
|
|
166
|
-
|
|
166
|
+
return undefined;
|
|
167
|
+
return LlmSchemaConverter_1.LlmSchemaConverter.schema(props.model)({
|
|
167
168
|
config: LlmSchemaConverter_1.LlmSchemaConverter.defaultConfig(props.model),
|
|
168
169
|
components: props.components,
|
|
169
170
|
schema: props.schema,
|
|
170
171
|
$defs: props.parameters.$defs,
|
|
172
|
+
errors: props.errors,
|
|
173
|
+
accessor: props.accessor,
|
|
171
174
|
});
|
|
172
|
-
if (output === null)
|
|
173
|
-
throw new Error("Failed to write LLM application output.");
|
|
174
|
-
return output;
|
|
175
175
|
};
|
|
176
176
|
})(LlmApplicationProgrammer || (exports.LlmApplicationProgrammer = LlmApplicationProgrammer = {}));
|
|
177
177
|
//# sourceMappingURL=LlmApplicationProgrammer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LlmApplicationProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/llm/LlmApplicationProgrammer.ts"],"names":[],"mappings":";;;AACA,2FAAwF;AAUxF,iFAA8E;AAC9E,+DAA4D;AAE5D,IAAiB,wBAAwB,
|
|
1
|
+
{"version":3,"file":"LlmApplicationProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/llm/LlmApplicationProgrammer.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.LlmParametersProgrammer = void 0;
|
|
4
4
|
const openapi_1 = require("@samchon/openapi");
|
|
5
5
|
const LlmSchemaConverter_1 = require("@samchon/openapi/lib/converters/LlmSchemaConverter");
|
|
6
|
+
const TransformerError_1 = require("../../transformers/TransformerError");
|
|
6
7
|
const JsonSchemasProgrammer_1 = require("../json/JsonSchemasProgrammer");
|
|
7
8
|
const LlmSchemaProgrammer_1 = require("./LlmSchemaProgrammer");
|
|
8
9
|
var LlmParametersProgrammer;
|
|
@@ -24,13 +25,19 @@ var LlmParametersProgrammer;
|
|
|
24
25
|
}
|
|
25
26
|
throw new Error("Unreachable code. Failed to find the object schema.");
|
|
26
27
|
})();
|
|
28
|
+
const errors = [];
|
|
27
29
|
const parameters = LlmSchemaConverter_1.LlmSchemaConverter.parameters(props.model)({
|
|
28
30
|
config: Object.assign(Object.assign({}, LlmSchemaConverter_1.LlmSchemaConverter.defaultConfig(props.model)), props.config),
|
|
29
31
|
components: collection.components,
|
|
30
32
|
schema,
|
|
33
|
+
errors,
|
|
31
34
|
});
|
|
32
35
|
if (parameters === null)
|
|
33
|
-
throw new
|
|
36
|
+
throw new TransformerError_1.TransformerError({
|
|
37
|
+
code: "typia.llm.parameters",
|
|
38
|
+
message: "failed to convert JSON schema to LLM schema.\n\n" +
|
|
39
|
+
errors.map((str) => ` - ${str}`).join("\n"),
|
|
40
|
+
});
|
|
34
41
|
return parameters;
|
|
35
42
|
};
|
|
36
43
|
LlmParametersProgrammer.validate = (model) => (metadata, explore) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LlmParametersProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/llm/LlmParametersProgrammer.ts"],"names":[],"mappings":";;;AAAA,8CAA2E;AAC3E,2FAAwF;
|
|
1
|
+
{"version":3,"file":"LlmParametersProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/llm/LlmParametersProgrammer.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.LlmSchemaProgrammer = void 0;
|
|
4
4
|
const LlmSchemaConverter_1 = require("@samchon/openapi/lib/converters/LlmSchemaConverter");
|
|
5
|
+
const TransformerError_1 = require("../../transformers/TransformerError");
|
|
5
6
|
const AtomicPredicator_1 = require("../helpers/AtomicPredicator");
|
|
6
7
|
const json_schema_bigint_1 = require("../internal/json_schema_bigint");
|
|
7
8
|
const json_schema_boolean_1 = require("../internal/json_schema_boolean");
|
|
@@ -17,14 +18,20 @@ var LlmSchemaProgrammer;
|
|
|
17
18
|
metadatas: [props.metadata],
|
|
18
19
|
});
|
|
19
20
|
const $defs = {};
|
|
21
|
+
const errors = [];
|
|
20
22
|
const schema = LlmSchemaConverter_1.LlmSchemaConverter.schema(props.model)({
|
|
21
23
|
config: Object.assign(Object.assign({}, LlmSchemaConverter_1.LlmSchemaConverter.defaultConfig(props.model)), props.config),
|
|
22
24
|
components: collection.components,
|
|
23
25
|
schema: collection.schemas[0],
|
|
24
26
|
$defs: $defs,
|
|
27
|
+
errors,
|
|
25
28
|
});
|
|
26
29
|
if (schema === null)
|
|
27
|
-
throw new
|
|
30
|
+
throw new TransformerError_1.TransformerError({
|
|
31
|
+
code: "typia.llm.schema",
|
|
32
|
+
message: "failed to convert JSON schema to LLM schema.\n\n" +
|
|
33
|
+
errors.map((str) => ` - ${str}`).join("\n"),
|
|
34
|
+
});
|
|
28
35
|
return {
|
|
29
36
|
model: props.model,
|
|
30
37
|
$defs,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LlmSchemaProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/llm/LlmSchemaProgrammer.ts"],"names":[],"mappings":";;;AACA,2FAAwF;AAKxF,kEAA+D;AAC/D,uEAAoE;AACpE,yEAAsE;AACtE,uEAAoE;AACpE,uEAAoE;AACpE,uEAAoE;AACpE,yEAAsE;AAEtE,IAAiB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"LlmSchemaProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/llm/LlmSchemaProgrammer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "typia",
|
|
3
|
-
"version": "7.0.0-dev.
|
|
3
|
+
"version": "7.0.0-dev.20241130",
|
|
4
4
|
"description": "Superfast runtime validators with only one line",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"typings": "lib/index.d.ts",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
},
|
|
42
42
|
"homepage": "https://typia.io",
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@samchon/openapi": "^2.0.0-dev.
|
|
44
|
+
"@samchon/openapi": "^2.0.0-dev.20241130",
|
|
45
45
|
"commander": "^10.0.0",
|
|
46
46
|
"comment-json": "^4.2.3",
|
|
47
47
|
"inquirer": "^8.2.5",
|
|
@@ -26,9 +26,7 @@ export class MetadataCollection {
|
|
|
26
26
|
private recursive_array_index_: number;
|
|
27
27
|
private recursive_tuple_index_: number;
|
|
28
28
|
|
|
29
|
-
public constructor(
|
|
30
|
-
private readonly options?: Partial<MetadataCollection.IOptions>,
|
|
31
|
-
) {
|
|
29
|
+
public constructor(private options?: Partial<MetadataCollection.IOptions>) {
|
|
32
30
|
this.objects_ = new Map();
|
|
33
31
|
this.object_unions_ = new Map();
|
|
34
32
|
this.aliases_ = new Map();
|
|
@@ -18,6 +18,8 @@ export const iterate_metadata_intersection = (
|
|
|
18
18
|
|
|
19
19
|
// COSTRUCT FAKE METADATA LIST
|
|
20
20
|
const commit: MetadataCollection = props.collection.clone();
|
|
21
|
+
props.collection["options"] = undefined;
|
|
22
|
+
|
|
21
23
|
const fakeErrors: MetadataFactory.IError[] = [];
|
|
22
24
|
const children: Metadata[] = props.type.types.map((t) =>
|
|
23
25
|
explore_metadata({
|
|
@@ -39,16 +41,16 @@ export const iterate_metadata_intersection = (
|
|
|
39
41
|
);
|
|
40
42
|
|
|
41
43
|
// ERROR OR ANY TYPE CASE
|
|
42
|
-
const escape = () => {
|
|
44
|
+
const escape = (out: boolean) => {
|
|
43
45
|
Object.assign(props.collection, commit);
|
|
44
|
-
return
|
|
46
|
+
return out;
|
|
45
47
|
};
|
|
46
48
|
if (fakeErrors.length) {
|
|
47
49
|
props.errors.push(...fakeErrors);
|
|
48
|
-
return true;
|
|
49
|
-
} else if (children.length === 0) return escape();
|
|
50
|
+
return escape(true);
|
|
51
|
+
} else if (children.length === 0) return escape(false);
|
|
50
52
|
else if (children.some((m) => m.any === true || m.size() === 0))
|
|
51
|
-
return escape();
|
|
53
|
+
return escape(false);
|
|
52
54
|
|
|
53
55
|
// PREPARE MEATDATAS AND TAGS
|
|
54
56
|
const indexes: number[] = [];
|
|
@@ -73,7 +75,7 @@ export const iterate_metadata_intersection = (
|
|
|
73
75
|
explore: { ...props.explore },
|
|
74
76
|
messages: ["nonsensible intersection"],
|
|
75
77
|
});
|
|
76
|
-
return true;
|
|
78
|
+
return escape(true);
|
|
77
79
|
};
|
|
78
80
|
|
|
79
81
|
// NO METADATA CASE
|
|
@@ -84,14 +86,14 @@ export const iterate_metadata_intersection = (
|
|
|
84
86
|
explore: { ...props.explore },
|
|
85
87
|
messages: ["type tag cannot be standalone"],
|
|
86
88
|
});
|
|
87
|
-
return true;
|
|
88
|
-
} else return escape();
|
|
89
|
+
return escape(true);
|
|
90
|
+
} else return escape(false);
|
|
89
91
|
// ONLY OBJECTS CASE
|
|
90
92
|
else if (
|
|
91
93
|
metadatas.every((m) => m.objects.length === 1) &&
|
|
92
94
|
tagObjects.length === 0
|
|
93
95
|
)
|
|
94
|
-
return escape();
|
|
96
|
+
return escape(false);
|
|
95
97
|
else if (metadatas.length !== 1) {
|
|
96
98
|
const indexes: number[] = metadatas
|
|
97
99
|
.map((m, i) =>
|
|
@@ -128,11 +128,26 @@ export namespace LlmApplicationProgrammer {
|
|
|
128
128
|
if (errors.length)
|
|
129
129
|
throw new Error("Failed to write LLM application: " + errors.join("\n"));
|
|
130
130
|
|
|
131
|
+
const errorMessages: string[] = [];
|
|
131
132
|
const application: __IJsonApplication<"3.1"> =
|
|
132
133
|
JsonApplicationProgrammer.write({
|
|
133
134
|
version: "3.1",
|
|
134
135
|
metadata: props.metadata,
|
|
135
136
|
});
|
|
137
|
+
const functions: Array<ILlmFunction<Model> | null> =
|
|
138
|
+
application.functions.map((func) =>
|
|
139
|
+
writeFunction({
|
|
140
|
+
model: props.model,
|
|
141
|
+
components: application.components,
|
|
142
|
+
function: func,
|
|
143
|
+
errors: errorMessages,
|
|
144
|
+
}),
|
|
145
|
+
);
|
|
146
|
+
if (functions.some((func) => func === null))
|
|
147
|
+
throw new Error(
|
|
148
|
+
"Failed to write LLM application:\n\n" +
|
|
149
|
+
errorMessages.map((str) => ` - ${str}`).join("\n"),
|
|
150
|
+
);
|
|
136
151
|
return {
|
|
137
152
|
model: props.model,
|
|
138
153
|
options: {
|
|
@@ -140,13 +155,7 @@ export namespace LlmApplicationProgrammer {
|
|
|
140
155
|
...props.config,
|
|
141
156
|
separate: null,
|
|
142
157
|
},
|
|
143
|
-
functions:
|
|
144
|
-
writeFunction({
|
|
145
|
-
model: props.model,
|
|
146
|
-
components: application.components,
|
|
147
|
-
function: func,
|
|
148
|
-
}),
|
|
149
|
-
),
|
|
158
|
+
functions: functions as ILlmFunction<Model>[],
|
|
150
159
|
};
|
|
151
160
|
};
|
|
152
161
|
|
|
@@ -154,16 +163,25 @@ export namespace LlmApplicationProgrammer {
|
|
|
154
163
|
model: Model;
|
|
155
164
|
components: OpenApi.IComponents;
|
|
156
165
|
function: __IJsonApplication.IFunction<OpenApi.IJsonSchema>;
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
166
|
+
errors: string[];
|
|
167
|
+
}): ILlmFunction<Model> | null => {
|
|
168
|
+
const parameters: ILlmSchema.ModelParameters[Model] | null =
|
|
169
|
+
writeParameters({
|
|
170
|
+
...props,
|
|
171
|
+
accessor: `$input.${props.function.name}.parameters`,
|
|
172
|
+
});
|
|
173
|
+
if (parameters === null) return null;
|
|
174
|
+
const output: ILlmSchema.ModelSchema[Model] | null | undefined =
|
|
175
|
+
writeOutput({
|
|
176
|
+
model: props.model,
|
|
177
|
+
parameters,
|
|
178
|
+
components: props.components,
|
|
179
|
+
schema: props.function.output?.schema ?? null,
|
|
180
|
+
errors: props.errors,
|
|
181
|
+
accessor: `$input.${props.function.name}.output`,
|
|
182
|
+
});
|
|
183
|
+
if (output === null) return null;
|
|
184
|
+
else if (
|
|
167
185
|
output &&
|
|
168
186
|
output.description === undefined &&
|
|
169
187
|
!!props.function.output?.description?.length
|
|
@@ -198,33 +216,20 @@ export namespace LlmApplicationProgrammer {
|
|
|
198
216
|
model: Model;
|
|
199
217
|
components: OpenApi.IComponents;
|
|
200
218
|
function: __IJsonApplication.IFunction<OpenApi.IJsonSchema>;
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
.filter((p) => p.required)
|
|
216
|
-
.map((p) => p.name),
|
|
217
|
-
additionalProperties: false,
|
|
218
|
-
};
|
|
219
|
-
const parameters: ILlmSchema.ModelParameters[Model] | null =
|
|
220
|
-
LlmSchemaConverter.parameters(props.model)({
|
|
221
|
-
config: LlmSchemaConverter.defaultConfig(props.model) as any,
|
|
222
|
-
components: props.components,
|
|
223
|
-
schema,
|
|
224
|
-
}) as ILlmSchema.ModelParameters[Model] | null;
|
|
225
|
-
if (parameters === null)
|
|
226
|
-
throw new Error("Failed to write LLM application parameters.");
|
|
227
|
-
return parameters;
|
|
219
|
+
errors: string[];
|
|
220
|
+
accessor: string;
|
|
221
|
+
}): ILlmSchema.ModelParameters[Model] | null => {
|
|
222
|
+
const schema = props.function.parameters[0]?.schema;
|
|
223
|
+
if (!schema) return null;
|
|
224
|
+
return LlmSchemaConverter.parameters(props.model)({
|
|
225
|
+
config: LlmSchemaConverter.defaultConfig(props.model) as any,
|
|
226
|
+
components: props.components,
|
|
227
|
+
schema: schema as
|
|
228
|
+
| OpenApi.IJsonSchema.IObject
|
|
229
|
+
| OpenApi.IJsonSchema.IReference,
|
|
230
|
+
errors: props.errors,
|
|
231
|
+
accessor: props.accessor,
|
|
232
|
+
}) as ILlmSchema.ModelParameters[Model] | null;
|
|
228
233
|
};
|
|
229
234
|
|
|
230
235
|
const writeOutput = <Model extends ILlmSchema.Model>(props: {
|
|
@@ -232,17 +237,17 @@ export namespace LlmApplicationProgrammer {
|
|
|
232
237
|
parameters: ILlmSchema.ModelParameters[Model];
|
|
233
238
|
components: OpenApi.IComponents;
|
|
234
239
|
schema: OpenApi.IJsonSchema | null;
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
240
|
+
errors: string[];
|
|
241
|
+
accessor: string;
|
|
242
|
+
}): ILlmSchema.ModelSchema[Model] | null | undefined => {
|
|
243
|
+
if (props.schema === null) return undefined;
|
|
244
|
+
return LlmSchemaConverter.schema(props.model)({
|
|
245
|
+
config: LlmSchemaConverter.defaultConfig(props.model) as any,
|
|
246
|
+
components: props.components,
|
|
247
|
+
schema: props.schema,
|
|
248
|
+
$defs: (props.parameters as any).$defs,
|
|
249
|
+
errors: props.errors,
|
|
250
|
+
accessor: props.accessor,
|
|
251
|
+
}) as ILlmSchema.ModelSchema[Model] | null;
|
|
247
252
|
};
|
|
248
253
|
}
|
|
@@ -5,6 +5,8 @@ import { MetadataFactory } from "../../factories/MetadataFactory";
|
|
|
5
5
|
|
|
6
6
|
import { Metadata } from "../../schemas/metadata/Metadata";
|
|
7
7
|
|
|
8
|
+
import { TransformerError } from "../../transformers/TransformerError";
|
|
9
|
+
|
|
8
10
|
import { IJsonSchemaCollection } from "../../module";
|
|
9
11
|
import { JsonSchemasProgrammer } from "../json/JsonSchemasProgrammer";
|
|
10
12
|
import { LlmSchemaProgrammer } from "./LlmSchemaProgrammer";
|
|
@@ -31,6 +33,7 @@ export namespace LlmParametersProgrammer {
|
|
|
31
33
|
throw new Error("Unreachable code. Failed to find the object schema.");
|
|
32
34
|
})();
|
|
33
35
|
|
|
36
|
+
const errors: string[] = [];
|
|
34
37
|
const parameters: ILlmSchema.ModelParameters[Model] | null =
|
|
35
38
|
LlmSchemaConverter.parameters(props.model)({
|
|
36
39
|
config: {
|
|
@@ -39,9 +42,15 @@ export namespace LlmParametersProgrammer {
|
|
|
39
42
|
} as any,
|
|
40
43
|
components: collection.components,
|
|
41
44
|
schema,
|
|
45
|
+
errors,
|
|
42
46
|
}) as ILlmSchema.ModelParameters[Model] | null;
|
|
43
47
|
if (parameters === null)
|
|
44
|
-
throw new
|
|
48
|
+
throw new TransformerError({
|
|
49
|
+
code: "typia.llm.parameters",
|
|
50
|
+
message:
|
|
51
|
+
"failed to convert JSON schema to LLM schema.\n\n" +
|
|
52
|
+
errors.map((str) => ` - ${str}`).join("\n"),
|
|
53
|
+
});
|
|
45
54
|
return parameters;
|
|
46
55
|
};
|
|
47
56
|
|
|
@@ -4,6 +4,8 @@ import { LlmSchemaConverter } from "@samchon/openapi/lib/converters/LlmSchemaCon
|
|
|
4
4
|
import { IJsonSchemaCollection } from "../../schemas/json/IJsonSchemaCollection";
|
|
5
5
|
import { Metadata } from "../../schemas/metadata/Metadata";
|
|
6
6
|
|
|
7
|
+
import { TransformerError } from "../../transformers/TransformerError";
|
|
8
|
+
|
|
7
9
|
import { AtomicPredicator } from "../helpers/AtomicPredicator";
|
|
8
10
|
import { json_schema_bigint } from "../internal/json_schema_bigint";
|
|
9
11
|
import { json_schema_boolean } from "../internal/json_schema_boolean";
|
|
@@ -31,6 +33,7 @@ export namespace LlmSchemaProgrammer {
|
|
|
31
33
|
});
|
|
32
34
|
|
|
33
35
|
const $defs: Record<string, ILlmSchema.ModelSchema[Model]> = {};
|
|
36
|
+
const errors: string[] = [];
|
|
34
37
|
const schema: ILlmSchema.ModelSchema[Model] | null =
|
|
35
38
|
LlmSchemaConverter.schema(props.model)({
|
|
36
39
|
config: {
|
|
@@ -40,9 +43,15 @@ export namespace LlmSchemaProgrammer {
|
|
|
40
43
|
components: collection.components,
|
|
41
44
|
schema: collection.schemas[0]!,
|
|
42
45
|
$defs: $defs as any,
|
|
46
|
+
errors,
|
|
43
47
|
}) as ILlmSchema.ModelSchema[Model] | null;
|
|
44
48
|
if (schema === null)
|
|
45
|
-
throw new
|
|
49
|
+
throw new TransformerError({
|
|
50
|
+
code: "typia.llm.schema",
|
|
51
|
+
message:
|
|
52
|
+
"failed to convert JSON schema to LLM schema.\n\n" +
|
|
53
|
+
errors.map((str) => ` - ${str}`).join("\n"),
|
|
54
|
+
});
|
|
46
55
|
return {
|
|
47
56
|
model: props.model,
|
|
48
57
|
$defs,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { IMetadata } from "./IMetadata";
|
|
2
|
-
import { IMetadataComponents } from "./IMetadataComponents";
|
|
3
|
-
|
|
4
|
-
export interface IMetadataApplication {
|
|
5
|
-
metadatas: IMetadata[];
|
|
6
|
-
components: IMetadataComponents;
|
|
7
|
-
}
|
|
1
|
+
import { IMetadata } from "./IMetadata";
|
|
2
|
+
import { IMetadataComponents } from "./IMetadataComponents";
|
|
3
|
+
|
|
4
|
+
export interface IMetadataApplication {
|
|
5
|
+
metadatas: IMetadata[];
|
|
6
|
+
components: IMetadataComponents;
|
|
7
|
+
}
|
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
import { ClassProperties } from "../../typings/ClassProperties";
|
|
2
|
-
|
|
3
|
-
import { IMetadataApplication } from "./IMetadataApplication";
|
|
4
|
-
import { Metadata } from "./Metadata";
|
|
5
|
-
import { MetadataComponents } from "./MetadataComponents";
|
|
6
|
-
|
|
7
|
-
export class MetadataApplication {
|
|
8
|
-
public readonly metadatas: Metadata[];
|
|
9
|
-
public readonly components: MetadataComponents;
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* @hidden
|
|
13
|
-
*/
|
|
14
|
-
private constructor(props: ClassProperties<MetadataApplication>) {
|
|
15
|
-
this.metadatas = props.metadatas;
|
|
16
|
-
this.components = props.components;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* @internal
|
|
21
|
-
*/
|
|
22
|
-
public static create(
|
|
23
|
-
props: ClassProperties<MetadataApplication>,
|
|
24
|
-
): MetadataApplication {
|
|
25
|
-
return new MetadataApplication(props);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
public static from(app: IMetadataApplication): MetadataApplication {
|
|
29
|
-
const components: MetadataComponents = MetadataComponents.from(
|
|
30
|
-
app.components,
|
|
31
|
-
);
|
|
32
|
-
const metadatas: Metadata[] = app.metadatas.map((metadata) =>
|
|
33
|
-
Metadata.from(metadata, components.dictionary),
|
|
34
|
-
);
|
|
35
|
-
return MetadataApplication.create({ metadatas, components });
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
public toJSON(): IMetadataApplication {
|
|
39
|
-
return {
|
|
40
|
-
metadatas: this.metadatas.map((metadata) => metadata.toJSON()),
|
|
41
|
-
components: this.components.toJSON(),
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
}
|
|
1
|
+
import { ClassProperties } from "../../typings/ClassProperties";
|
|
2
|
+
|
|
3
|
+
import { IMetadataApplication } from "./IMetadataApplication";
|
|
4
|
+
import { Metadata } from "./Metadata";
|
|
5
|
+
import { MetadataComponents } from "./MetadataComponents";
|
|
6
|
+
|
|
7
|
+
export class MetadataApplication {
|
|
8
|
+
public readonly metadatas: Metadata[];
|
|
9
|
+
public readonly components: MetadataComponents;
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @hidden
|
|
13
|
+
*/
|
|
14
|
+
private constructor(props: ClassProperties<MetadataApplication>) {
|
|
15
|
+
this.metadatas = props.metadatas;
|
|
16
|
+
this.components = props.components;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* @internal
|
|
21
|
+
*/
|
|
22
|
+
public static create(
|
|
23
|
+
props: ClassProperties<MetadataApplication>,
|
|
24
|
+
): MetadataApplication {
|
|
25
|
+
return new MetadataApplication(props);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
public static from(app: IMetadataApplication): MetadataApplication {
|
|
29
|
+
const components: MetadataComponents = MetadataComponents.from(
|
|
30
|
+
app.components,
|
|
31
|
+
);
|
|
32
|
+
const metadatas: Metadata[] = app.metadatas.map((metadata) =>
|
|
33
|
+
Metadata.from(metadata, components.dictionary),
|
|
34
|
+
);
|
|
35
|
+
return MetadataApplication.create({ metadatas, components });
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
public toJSON(): IMetadataApplication {
|
|
39
|
+
return {
|
|
40
|
+
metadatas: this.metadatas.map((metadata) => metadata.toJSON()),
|
|
41
|
+
components: this.components.toJSON(),
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -1,87 +1,87 @@
|
|
|
1
|
-
import { ClassProperties } from "../../typings/ClassProperties";
|
|
2
|
-
|
|
3
|
-
import { IMetadataAtomic } from "./IMetadataAtomic";
|
|
4
|
-
import { IMetadataTypeTag } from "./IMetadataTypeTag";
|
|
5
|
-
|
|
6
|
-
export class MetadataAtomic {
|
|
7
|
-
public readonly type: "boolean" | "bigint" | "number" | "string";
|
|
8
|
-
public readonly tags: IMetadataTypeTag[][];
|
|
9
|
-
|
|
10
|
-
private name_?: string;
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* @internal
|
|
14
|
-
*/
|
|
15
|
-
private constructor(props: ClassProperties<MetadataAtomic>) {
|
|
16
|
-
this.type = props.type;
|
|
17
|
-
this.tags = props.tags;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
public static create(props: ClassProperties<MetadataAtomic>): MetadataAtomic {
|
|
21
|
-
return new MetadataAtomic(props);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
public static from(json: IMetadataAtomic): MetadataAtomic {
|
|
25
|
-
return MetadataAtomic.create({
|
|
26
|
-
type: json.type,
|
|
27
|
-
tags: json.tags.map((row) =>
|
|
28
|
-
row.map((tag) => ({
|
|
29
|
-
target: tag.target,
|
|
30
|
-
name: tag.name,
|
|
31
|
-
kind: tag.kind,
|
|
32
|
-
value:
|
|
33
|
-
typeof tag.value === "object" &&
|
|
34
|
-
tag.value?.type === "bigint" &&
|
|
35
|
-
typeof tag.value.value === "string"
|
|
36
|
-
? BigInt(tag.value.value)
|
|
37
|
-
: tag.value,
|
|
38
|
-
validate: tag.validate,
|
|
39
|
-
exclusive: tag.exclusive,
|
|
40
|
-
schema: tag.schema,
|
|
41
|
-
})),
|
|
42
|
-
),
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
public getName(): string {
|
|
47
|
-
return (this.name_ ??= getName(this));
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
public toJSON(): IMetadataAtomic {
|
|
51
|
-
return {
|
|
52
|
-
type: this.type,
|
|
53
|
-
tags: this.tags.map((row) =>
|
|
54
|
-
row.map((tag) => ({
|
|
55
|
-
target: tag.target,
|
|
56
|
-
name: tag.name,
|
|
57
|
-
kind: tag.kind,
|
|
58
|
-
value:
|
|
59
|
-
typeof tag.value === "bigint"
|
|
60
|
-
? {
|
|
61
|
-
type: "bigint",
|
|
62
|
-
value: tag.value.toString(),
|
|
63
|
-
}
|
|
64
|
-
: tag.value,
|
|
65
|
-
validate: tag.validate,
|
|
66
|
-
exclusive: tag.exclusive,
|
|
67
|
-
schema: tag.schema,
|
|
68
|
-
})),
|
|
69
|
-
),
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
const getName = (obj: MetadataAtomic): string => {
|
|
75
|
-
if (obj.tags.length === 0) return obj.type;
|
|
76
|
-
else if (obj.tags.length === 1) {
|
|
77
|
-
const str: string = [obj.type, ...obj.tags[0]!.map((t) => t.name)].join(
|
|
78
|
-
" & ",
|
|
79
|
-
);
|
|
80
|
-
return `(${str})`;
|
|
81
|
-
}
|
|
82
|
-
const rows: string[] = obj.tags.map((row) => {
|
|
83
|
-
const str: string = row.map((t) => t.name).join(" & ");
|
|
84
|
-
return row.length === 1 ? str : `(${str})`;
|
|
85
|
-
});
|
|
86
|
-
return `(${obj.type} & (${rows.join(" | ")}))`;
|
|
87
|
-
};
|
|
1
|
+
import { ClassProperties } from "../../typings/ClassProperties";
|
|
2
|
+
|
|
3
|
+
import { IMetadataAtomic } from "./IMetadataAtomic";
|
|
4
|
+
import { IMetadataTypeTag } from "./IMetadataTypeTag";
|
|
5
|
+
|
|
6
|
+
export class MetadataAtomic {
|
|
7
|
+
public readonly type: "boolean" | "bigint" | "number" | "string";
|
|
8
|
+
public readonly tags: IMetadataTypeTag[][];
|
|
9
|
+
|
|
10
|
+
private name_?: string;
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* @internal
|
|
14
|
+
*/
|
|
15
|
+
private constructor(props: ClassProperties<MetadataAtomic>) {
|
|
16
|
+
this.type = props.type;
|
|
17
|
+
this.tags = props.tags;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
public static create(props: ClassProperties<MetadataAtomic>): MetadataAtomic {
|
|
21
|
+
return new MetadataAtomic(props);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
public static from(json: IMetadataAtomic): MetadataAtomic {
|
|
25
|
+
return MetadataAtomic.create({
|
|
26
|
+
type: json.type,
|
|
27
|
+
tags: json.tags.map((row) =>
|
|
28
|
+
row.map((tag) => ({
|
|
29
|
+
target: tag.target,
|
|
30
|
+
name: tag.name,
|
|
31
|
+
kind: tag.kind,
|
|
32
|
+
value:
|
|
33
|
+
typeof tag.value === "object" &&
|
|
34
|
+
tag.value?.type === "bigint" &&
|
|
35
|
+
typeof tag.value.value === "string"
|
|
36
|
+
? BigInt(tag.value.value)
|
|
37
|
+
: tag.value,
|
|
38
|
+
validate: tag.validate,
|
|
39
|
+
exclusive: tag.exclusive,
|
|
40
|
+
schema: tag.schema,
|
|
41
|
+
})),
|
|
42
|
+
),
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
public getName(): string {
|
|
47
|
+
return (this.name_ ??= getName(this));
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
public toJSON(): IMetadataAtomic {
|
|
51
|
+
return {
|
|
52
|
+
type: this.type,
|
|
53
|
+
tags: this.tags.map((row) =>
|
|
54
|
+
row.map((tag) => ({
|
|
55
|
+
target: tag.target,
|
|
56
|
+
name: tag.name,
|
|
57
|
+
kind: tag.kind,
|
|
58
|
+
value:
|
|
59
|
+
typeof tag.value === "bigint"
|
|
60
|
+
? {
|
|
61
|
+
type: "bigint",
|
|
62
|
+
value: tag.value.toString(),
|
|
63
|
+
}
|
|
64
|
+
: tag.value,
|
|
65
|
+
validate: tag.validate,
|
|
66
|
+
exclusive: tag.exclusive,
|
|
67
|
+
schema: tag.schema,
|
|
68
|
+
})),
|
|
69
|
+
),
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
const getName = (obj: MetadataAtomic): string => {
|
|
75
|
+
if (obj.tags.length === 0) return obj.type;
|
|
76
|
+
else if (obj.tags.length === 1) {
|
|
77
|
+
const str: string = [obj.type, ...obj.tags[0]!.map((t) => t.name)].join(
|
|
78
|
+
" & ",
|
|
79
|
+
);
|
|
80
|
+
return `(${str})`;
|
|
81
|
+
}
|
|
82
|
+
const rows: string[] = obj.tags.map((row) => {
|
|
83
|
+
const str: string = row.map((t) => t.name).join(" & ");
|
|
84
|
+
return row.length === 1 ? str : `(${str})`;
|
|
85
|
+
});
|
|
86
|
+
return `(${obj.type} & (${rows.join(" | ")}))`;
|
|
87
|
+
};
|