TechniquesStreamingFunction/tool callingStructured outputFew-shot promptingRetrievalText splittingEvaluationTracing