temp
This commit is contained in:
parent
9a3817dff0
commit
f369491a1d
|
|
@ -18,6 +18,64 @@ using System.Runtime.Serialization;
|
|||
|
||||
namespace FruitBankHybrid.Shared.Tests;
|
||||
|
||||
1. "Headered List" (A biztonságos táblázatosítás)
|
||||
|
||||
Az LLM-eknek nem kell minden sorban megismételni a mezőneveket, ha a lista elején egyszer definiálod a sorrendet. Ez nem találgatás, hanem egy lokális "szerződés".
|
||||
|
||||
Hagyományos (pazarló):
|
||||
Kódrészlet
|
||||
|
||||
OrderItemDtos = [
|
||||
OrderItemDto { Id = 120, Quantity = 10, ProductName = "Áfonya" }
|
||||
OrderItemDto { Id = 121, Quantity = 5, ProductName = "Narancs" }
|
||||
]
|
||||
|
||||
Optimalizált (pontos és tömör):
|
||||
Kódrészlet
|
||||
|
||||
OrderItemDtos: OrderItemDto[] = [
|
||||
[ Id, Quantity, ProductName ]
|
||||
[ 120, 10, "Áfonya" ]
|
||||
[ 121, 5, "Narancs" ]
|
||||
]
|
||||
|
||||
Miért jó ez? Az LLM a fejléc alapján (mint egy CSV-nél) rendeli hozzá az értékeket a típushoz. Mivel a típus (OrderItemDto) ott van a definícióban, a szemantikai kapcsolat nem vész el.
|
||||
|
||||
2. Típus-öröklődés a listákban
|
||||
|
||||
Ha a @types részben már leírtad, hogy az OrderItemDto.ProductDto mezője egy ProductDto típust vár, akkor a @data részben felesleges kiírni a típusnevet minden egyes elemnél.
|
||||
|
||||
Példa:
|
||||
Kódrészlet
|
||||
|
||||
// A 'ProductDto' elhagyható az objektum elől, mert a sémából tudja
|
||||
ProductDto = {
|
||||
Id = 1
|
||||
Name = "Áfonya..."
|
||||
GenericAttributes = [
|
||||
{ Id = 99, Key = "NetWeight", Value = "178.3" }
|
||||
{ Id = 100, Key = "GrossWeight", Value = "19" }
|
||||
]
|
||||
}
|
||||
|
||||
3. Alapértelmezett értékek elhagyása (Implicit Defaults)
|
||||
|
||||
Ha egy mező értéke megegyezik a @types-ban definiált default-value-val, vagy null/0/false, akkor azt teljesen hagyd ki a @data részből.
|
||||
|
||||
Szabály: Ami nincs ott, az az alapértelmezett.
|
||||
|
||||
Token megtakarítás: A FruitBank példádban a GenericAttributes = <GenericAttributeDto[]> (count: 0) [] sorok rengeteg helyet foglalnak. Ha üres, egyszerűen ne küldd el a mezőt.
|
||||
|
||||
4. String Table helyett: "Object Anchoring"
|
||||
|
||||
használd az objektum-referenciákat (amit a @ProductDto:1 jelöléssel már el is kezdett a rendszered).
|
||||
|
||||
Ha ugyanaz a Product szerepel 5 különböző rendelési tételnél, ne írd le ötször.
|
||||
|
||||
Első alkalommal: ProductDto { ... }
|
||||
|
||||
Minden további alkalommal: ProductDto = @ProductDto:1
|
||||
|
||||
//[ToonIgnore][ToonDataIgnore]
|
||||
[ToonDescription(Purpose = "Container model for Shipping, Order")]
|
||||
public class FullProcessModel
|
||||
|
|
|
|||
Loading…
Reference in New Issue