diff options
Diffstat (limited to 'data/zh_cn/paillmtrace')
| -rw-r--r-- | data/zh_cn/paillmtrace/2024-03-11/api-docs.php | 2499 |
1 files changed, 2499 insertions, 0 deletions
diff --git a/data/zh_cn/paillmtrace/2024-03-11/api-docs.php b/data/zh_cn/paillmtrace/2024-03-11/api-docs.php new file mode 100644 index 0000000..fdee6ea --- /dev/null +++ b/data/zh_cn/paillmtrace/2024-03-11/api-docs.php @@ -0,0 +1,2499 @@ +<?php return [ + 'version' => '1.0', + 'info' => [ + 'style' => 'ROA', + 'product' => 'PaiLLMTrace', + 'version' => '2024-03-11', + ], + 'directories' => [ + [ + 'id' => 208975, + 'title' => '评估单条链路数据', + 'type' => 'directory', + 'children' => [ + 'EvaluateTrace', + ], + ], + [ + 'id' => 204454, + 'title' => '链路评估任务', + 'type' => 'directory', + 'children' => [ + 'DeleteOnlineEvalTask', + 'GetEvaluationTemplates', + 'GetOnlineEvalTask', + 'ListOnlineEvalTaskResults', + 'ListOnlineEvalTasks', + 'StopOnlineEvalTask', + 'UpdateOnlineEvalTask', + 'CreateOnlineEvalTask', + ], + ], + [ + 'id' => 204463, + 'title' => '链路追踪', + 'type' => 'directory', + 'children' => [ + 'ListTracesDatas', + ], + ], + [ + 'id' => 205090, + 'title' => '其他', + 'type' => 'directory', + 'children' => [ + 'CreateServiceIdentityRole', + 'GetServiceIdentityRole', + 'GetXtraceToken', + 'ListEvalResults', + ], + ], + ], + 'components' => [ + 'schemas' => [ + 'EvaluationConfig' => [ + 'description' => '从json格式的链路数据里要一些提取特定路径上的值,作为评估操作的输入。在这个EvaluationConfig结构体里定义这些json路径。', + 'type' => 'object', + 'properties' => [ + 'Context' => [ + 'description' => '大模型回答问题时参考的上下文节点信息。', + 'type' => 'object', + 'properties' => [ + 'JsonPathInSpan' => [ + 'description' => '链路log里存放Context的json path。', + 'type' => 'string', + 'example' => 'attributes.retrieval.documents[*].document.content', + 'minLength' => 1, + ], + 'SpanName' => [ + 'description' => '链路log的span名称。', + 'type' => 'string', + 'example' => 'retrieve', + 'minLength' => 1, + ], + 'JsonPathInSpanValue' => [ + 'description' => '如果json path处取到的值本身仍然是json string,那么需要进一步定义这个json里的json path以获取实际的值。', + 'type' => 'string', + 'example' => 'message/value', + ], + ], + ], + 'Answer' => [ + 'description' => '基于大语言模型的应用针对用户问题的回答。', + 'type' => 'object', + 'properties' => [ + 'JsonPathInSpan' => [ + 'description' => '链路log里存放Answer的json path。', + 'type' => 'string', + 'example' => 'attributes.output.value', + 'minLength' => 1, + ], + 'SpanName' => [ + 'description' => '链路log的span名称。', + 'type' => 'string', + 'example' => 'query', + 'minLength' => 1, + ], + 'JsonPathInSpanValue' => [ + 'description' => '如果json path处取到的值本身仍然是json string,那么需要进一步定义这个json里的json path以获取实际的值。', + 'type' => 'string', + 'example' => 'message/value', + ], + ], + ], + 'Query' => [ + 'description' => '用户向基于大语言模型的应用提出的问题。', + 'type' => 'object', + 'properties' => [ + 'JsonPathInSpan' => [ + 'description' => '链路log里存放Query的json path。', + 'type' => 'string', + 'example' => 'attributes.input.value', + 'minLength' => 1, + ], + 'SpanName' => [ + 'description' => '链路log的span名称。', + 'type' => 'string', + 'example' => 'query', + 'minLength' => 1, + ], + 'JsonPathInSpanValue' => [ + 'description' => '如果json path处取到的值本身仍然是json string,那么需要进一步定义这个json里的json path以获取实际的值。', + 'type' => 'string', + 'example' => 'message/value', + ], + ], + ], + ], + ], + 'ModelConfig' => [ + 'description' => '评估任务内部使用的大模型的访问配置结构体。', + 'type' => 'object', + 'properties' => [ + 'Temperature' => [ + 'description' => '控制大模型输出随机性的温度参数。最大可设置到0.2。', + 'type' => 'number', + 'format' => 'float', + 'example' => '0.1', + ], + 'ApiKey' => [ + 'description' => '评估任务需要以用户名义调用用户有使用权的大模型时,需要填充的认证key。', + 'type' => 'string', + 'example' => 'lRQ6ny2BP1g73fsgf9O+Hr4DEedezQ', + ], + 'Endpoint' => [ + 'description' => '评估任务需要以用户名义调用用户有使用权的大模型时,需要填充的模型服务地址。', + 'type' => 'string', + 'example' => 'https://aiservice.cn-hangzhou.aliyuncs.com/v1', + ], + 'UseFunctionCall' => [ + 'description' => '评估任务需要以用户名义调用用户有使用权的大模型时,是否允许大模型调用外部工具。', + 'type' => 'boolean', + 'example' => 'True', + ], + 'TopP' => [ + 'description' => '控制大模型输出随机性的top p参数。', + 'type' => 'number', + 'format' => 'float', + 'example' => '0.9', + ], + 'Name' => [ + 'description' => '大模型的名称。', + 'type' => 'string', + 'example' => 'pai-judge'."\n" + .'themis'."\n" + .'qwen'."\n" + .'gpt', + ], + 'IsSelfHost' => [ + 'description' => '用户的大模型服务是自己提供的(True)、还是阿里云PAI提供的(False)。', + 'type' => 'boolean', + 'example' => 'False', + ], + ], + ], + 'QuestionAnswer' => [ + 'type' => 'object', + 'properties' => [ + 'Answer' => [ + 'type' => 'object', + 'properties' => [ + 'Text' => [ + 'type' => 'string', + ], + 'Contexts' => [ + 'type' => 'array', + 'items' => [ + 'type' => 'string', + ], + ], + ], + ], + 'Question' => [ + 'type' => 'string', + ], + 'GroundTruth' => [ + 'type' => 'object', + 'properties' => [ + 'Text' => [ + 'type' => 'string', + ], + 'Contexts' => [ + 'type' => 'array', + 'items' => [ + 'type' => 'string', + ], + ], + ], + ], + ], + ], + ], + ], + 'apis' => [ + 'EvaluateTrace' => [ + 'summary' => '评估一条指定的trace数据。', + 'path' => '/api/v1/PAILLMTrace/eval/trace/{TraceId}', + 'methods' => [ + 'put', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'consumes' => [ + 'application/json', + ], + 'produces' => [ + 'application/json', + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'none', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '246343', + 'abilityTreeNodes' => [ + 'FEATURElearn0UHCCK', + ], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'TraceId', + 'in' => 'path', + 'schema' => [ + 'description' => '链路id', + 'type' => 'string', + 'required' => true, + 'example' => 'c43793673a384d39daa0a351b1000000', + ], + ], + [ + 'name' => 'body', + 'in' => 'body', + 'style' => 'json', + 'schema' => [ + 'description' => '请求结构。', + 'type' => 'object', + 'properties' => [ + 'AppName' => [ + 'description' => '链路数据所在的应用名称', + 'type' => 'string', + 'required' => false, + 'example' => 'my-llm-app', + ], + 'MinTime' => [ + 'description' => '搜索时间范围的UTC开始时间。', + 'type' => 'string', + 'required' => false, + 'example' => '2025-04-05 13:24:25'."\n" + .'2025-04-05', + ], + 'MaxTime' => [ + 'description' => '搜索时间范围的UTC结束时间。', + 'type' => 'string', + 'required' => false, + 'example' => '2025-04-05 13:24:25'."\n" + .'2025-04-05', + ], + 'EvaluationConfig' => [ + 'description' => '如果json path处取到的值本身仍然是json string,那么需要进一步定义这个json里的json path以获取实际的值。', + 'required' => true, + '$ref' => '#/components/schemas/EvaluationConfig', + ], + 'ModelConfig' => [ + 'description' => '评估链路功能内部使用的大模型的访问配置结构体。', + 'required' => false, + '$ref' => '#/components/schemas/ModelConfig', + ], + 'EvaluationId' => [ + 'description' => '评估任务的id。如果不指定,则系统会随机产生一个id返回给用户。用户可以凭借这个返回的任务id快速搜索评估结果。', + 'type' => 'string', + 'required' => false, + 'example' => '44aea0ee00000000be5be24b2abb8f98', + ], + ], + 'required' => false, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'Id of the request', + 'type' => 'string', + 'example' => 'F1AB295E-0D1F-5ECE-9FFA-98ABB4CB5DF5', + ], + 'Code' => [ + 'description' => '内部错误码。只在响应出错时被设置。', + 'type' => 'string', + 'example' => 'InvalidInputParams', + ], + 'Message' => [ + 'description' => '响应错误信息。只在响应出错时被设置。', + 'type' => 'string', + 'example' => 'eval_request missing dataset id or times', + ], + 'EvaluationId' => [ + 'description' => '链路数据所属的评估任务的任务id。', + 'type' => 'string', + 'example' => '6000043e103011f0922edec44617e03c', + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F1AB295E-0D1F-5ECE-9FFA-98ABB4CB5DF5\\",\\n \\"Code\\": \\"InvalidInputParams\\",\\n \\"Message\\": \\"eval_request missing dataset id or times\\",\\n \\"EvaluationId\\": \\"6000043e103011f0922edec44617e03c\\"\\n}","type":"json"}]', + 'title' => '评估一条指定的链路数据。', + ], + 'DeleteOnlineEvalTask' => [ + 'summary' => '删除一个链路评估任务。', + 'path' => '/api/v1/PAILLMTrace/onlineevaltasks/{TaskId}', + 'methods' => [ + 'delete', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'consumes' => [ + 'application/json', + ], + 'produces' => [ + 'application/json', + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '241122', + 'abilityTreeNodes' => [ + 'FEATURElearn0UHCCK', + ], + ], + 'parameters' => [ + [ + 'name' => 'TaskId', + 'in' => 'path', + 'schema' => [ + 'description' => '链路评估任务的id。', + 'type' => 'string', + 'required' => true, + 'example' => '1d3f2shp3cfjum4l74odz5gkkh', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'Id of the request', + 'type' => 'string', + 'example' => '6A87228C-969A-1381-98CF-AE07AE630FA5', + ], + 'Code' => [ + 'description' => '内部错误码。只在响应出错时被设置。', + 'type' => 'string', + 'example' => 'InvalidInputParams', + ], + 'Message' => [ + 'description' => '响应错误信息。只在响应出错时被设置。', + 'type' => 'string', + 'example' => 'task id is empty', + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"6A87228C-969A-1381-98CF-AE07AE630FA5\\",\\n \\"Code\\": \\"InvalidInputParams\\",\\n \\"Message\\": \\"task id is empty\\"\\n}","type":"json"}]', + 'title' => '删除一个链路评估任务。', + ], + 'GetEvaluationTemplates' => [ + 'summary' => '链路评估系统通过和大模型交互、来生成对用户应用的评估结果。评估系统和大模型交互时,需要构造特定的提问提交给大模型。这些问题会基于评估系统内部定义的一些模板构造。这个API返回这些评估系统内部预设模板,供调用者参考和理解。', + 'path' => '/api/v1/PAILLMTrace/eval/templates', + 'methods' => [ + 'get', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'consumes' => [ + 'application/json', + ], + 'produces' => [ + 'application/json', + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATURElearn0UHCCK', + ], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'Id of the request', + 'type' => 'string', + 'example' => '6A87228C-969A-1381-98CF-AE07AE630FA5', + ], + 'Code' => [ + 'description' => '内部错误码。只在响应出错时被设置。', + 'type' => 'string', + 'example' => 'ExecutionFailure', + ], + 'Message' => [ + 'description' => '响应错误信息。只在响应出错时被设置。', + 'type' => 'string', + 'example' => 'cannot get data back.', + ], + 'EvaluationTemplates' => [ + 'description' => '评估系统内部使用的构造llm交互信息的一系列模板。', + 'type' => 'array', + 'items' => [ + 'description' => '一个模板。', + 'type' => 'any', + 'example' => ' {'."\n" + .' \'eval_app_type\': constants.EvalAppType.RAG,'."\n" + .' \'templates\': ['."\n" + .' {'."\n" + .' \'metric\': "relevance",'."\n" + .' \'template\': \'...\''."\n" + .' },'."\n" + .' {'."\n" + .' \'metric\': "faithfulness",'."\n" + .' \'template\': \'...\''."\n" + .' },'."\n" + .' {'."\n" + .' \'metric\': \'correctness\','."\n" + .' \'template\': \'...\''."\n" + .' }'."\n" + .' ]'."\n" + .' }', + ], + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"6A87228C-969A-1381-98CF-AE07AE630FA5\\",\\n \\"Code\\": \\"ExecutionFailure\\",\\n \\"Message\\": \\"cannot get data back.\\",\\n \\"EvaluationTemplates\\": [\\n \\" {\\\\n \'eval_app_type\': constants.EvalAppType.RAG,\\\\n \'templates\': [\\\\n {\\\\n \'metric\': \\\\\\"relevance\\\\\\",\\\\n \'template\': \'...\'\\\\n },\\\\n {\\\\n \'metric\': \\\\\\"faithfulness\\\\\\",\\\\n \'template\': \'...\'\\\\n },\\\\n {\\\\n \'metric\': \'correctness\',\\\\n \'template\': \'...\'\\\\n }\\\\n ]\\\\n }\\"\\n ]\\n}","type":"json"}]', + 'title' => '获取链路评估系统内部使用的模版', + ], + 'GetOnlineEvalTask' => [ + 'summary' => '获取指定链路评估任务的详细信息,包括名称、评估模型配置,起止时间等信息。', + 'path' => '/api/v1/PAILLMTrace/onlineevaltasks/{TaskId}', + 'methods' => [ + 'get', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'consumes' => [ + 'application/json', + ], + 'produces' => [ + 'application/json', + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '241119', + 'abilityTreeNodes' => [ + 'FEATURElearn0UHCCK', + ], + ], + 'parameters' => [ + [ + 'name' => 'TaskId', + 'in' => 'path', + 'schema' => [ + 'description' => '任务ID。', + 'type' => 'string', + 'required' => true, + 'example' => 'e111d41dd22ca6cf4bc1e3fcad7a142af93', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'POP request id', + 'type' => 'string', + 'example' => '6F352A02-9C0D-54A7-B57C-663CF71D5714', + ], + 'Code' => [ + 'description' => '内部错误码。只在响应出错时被设置。', + 'type' => 'string', + 'example' => 'InvalidInputParams', + ], + 'Message' => [ + 'description' => '响应错误信息。只在响应出错时被设置。', + 'type' => 'string', + 'example' => 'task id is empty', + ], + 'Task' => [ + 'description' => '任务信息', + 'type' => 'object', + 'properties' => [ + 'Id' => [ + 'description' => '任务id', + 'type' => 'string', + 'example' => '0839a02d-aa24-4174-90bb-7a773885934d', + ], + 'Name' => [ + 'description' => '任务名称。', + 'type' => 'string', + 'example' => 'my-eval-task-1', + ], + 'AliyunUid' => [ + 'description' => '任务创建者的阿里云账号(主账号)。', + 'type' => 'string', + 'example' => '1195531608511111', + ], + 'UserId' => [ + 'description' => '任务创建者的阿里云子账号。', + 'type' => 'string', + 'example' => '222222222222222222', + ], + 'AppName' => [ + 'description' => '该任务针对的用户应用的名称。', + 'type' => 'string', + 'example' => 'my-llm-app', + ], + 'Filters' => [ + 'description' => '评估任务要搜索一定量的用户应用产生的链路数据,作为评估操作的输入数据。这是定义搜索筛选条件的列表。', + 'type' => 'array', + 'items' => [ + 'description' => '过滤条件对象。', + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => '过滤条件的key。', + 'type' => 'string', + 'example' => 'ServiceId'."\n" + .'ServiceName'."\n" + .'Input'."\n" + .'Output'."\n" + .'Status'."\n" + .'TraceType'."\n" + .'SpanType'."\n" + .'TraceName'."\n" + .'SpanName', + ], + 'Operator' => [ + 'description' => '过滤条件匹配操作符。', + 'type' => 'string', + 'example' => '='."\n" + .'StartsWith'."\n" + .'Contains', + ], + 'Value' => [ + 'description' => '过滤条件的值。', + 'type' => 'string', + 'example' => 'foo', + ], + ], + ], + ], + 'GmtCreateTime' => [ + 'description' => '任务UTC创建时间。', + 'type' => 'string', + 'example' => '2024-07-31 08:30:00', + ], + 'GmtStartTime' => [ + 'description' => '链路数据的UTC开始时间。', + 'type' => 'string', + 'example' => '2024-08-02', + ], + 'GmtEndTime' => [ + 'description' => '链路数据的UTC结束时间。', + 'type' => 'string', + 'example' => '2024-08-10 13:20:00', + ], + 'GmtLastSamplingWindowStartTime' => [ + 'description' => '最后一次采样窗口的UTC开始时间。', + 'type' => 'string', + 'example' => '2024-08-10 13:11:00', + ], + 'GmtLastSamplingWindowEndTime' => [ + 'description' => '最后一次采样窗口的UTC结束时间', + 'type' => 'string', + 'example' => '2024-08-10 13:14:00', + ], + 'SamplingFrequencyMinutes' => [ + 'description' => '评估任务要搜索一定量的用户应用产生的链路数据,作为评估操作的输入数据。这是定义任务每次搜索输入数据的时间窗口的宽度。', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '3', + ], + 'SamplingRatio' => [ + 'description' => '评估任务在一个时间窗口里搜索到的数据,真正作为评估输入数据的百分比。比如100表示搜索到的所有数据都作为评估输入。又比如20表示从搜索到的数据里随机取20%作为评估输入。', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '70', + ], + 'Description' => [ + 'description' => '任务描述信息', + 'type' => 'string', + 'example' => '这个任务做了这些事。', + ], + 'Status' => [ + 'description' => '任务状态', + 'type' => 'string', + 'example' => 'CREATED'."\n" + .'RUNNING'."\n" + .'FINISHED'."\n" + .'USER_CANCELED', + ], + 'RecordCount' => [ + 'description' => '评估记录数量', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '999', + ], + 'EvalResults' => [ + 'description' => '从该任务所有的评估结果,通过聚合计算得到的聚合评估结果。', + 'type' => 'string', + 'example' => '[{"task_id": "11111", "result_type": "HasValidEvalResult", "record_count": 8, "faithfulness": 0.5, "correctness": 0.5, "ndcg": null, "mrr": null, "hit_rate": null, "precision": null}, {"task_id": "11111", "result_type": "FailedToExtractQCA", "record_count": 3, "faithfulness": 0.0, "correctness": 0.0, "ndcg": null, "mrr": null, "hit_rate": null, "precision": null}]', + ], + 'EvaluationConfig' => [ + 'description' => '从json格式的链路数据里要一些提取特定路径上的值,作为评估操作的输入。在这个EvaluationConfig结构体里定义这些json路径。', + '$ref' => '#/components/schemas/EvaluationConfig', + ], + 'ModelConfig' => [ + 'description' => '评估任务内部使用的大模型的访问配置结构体。', + '$ref' => '#/components/schemas/ModelConfig', + ], + ], + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"6F352A02-9C0D-54A7-B57C-663CF71D5714\\",\\n \\"Code\\": \\"InvalidInputParams\\",\\n \\"Message\\": \\"task id is empty\\",\\n \\"Task\\": {\\n \\"Id\\": \\"0839a02d-aa24-4174-90bb-7a773885934d\\",\\n \\"Name\\": \\"my-eval-task-1\\",\\n \\"AliyunUid\\": \\"1195531608511111\\",\\n \\"UserId\\": \\"222222222222222222\\",\\n \\"AppName\\": \\"my-llm-app\\",\\n \\"Filters\\": [\\n {\\n \\"Key\\": \\"ServiceId\\\\nServiceName\\\\nInput\\\\nOutput\\\\nStatus\\\\nTraceType\\\\nSpanType\\\\nTraceName\\\\nSpanName\\",\\n \\"Operator\\": \\"=\\\\nStartsWith\\\\nContains\\",\\n \\"Value\\": \\"foo\\"\\n }\\n ],\\n \\"GmtCreateTime\\": \\"2024-07-31 08:30:00\\",\\n \\"GmtStartTime\\": \\"2024-08-02\\",\\n \\"GmtEndTime\\": \\"2024-08-10 13:20:00\\",\\n \\"GmtLastSamplingWindowStartTime\\": \\"2024-08-10 13:11:00\\",\\n \\"GmtLastSamplingWindowEndTime\\": \\"2024-08-10 13:14:00\\",\\n \\"SamplingFrequencyMinutes\\": 3,\\n \\"SamplingRatio\\": 70,\\n \\"Description\\": \\"这个任务做了这些事。\\",\\n \\"Status\\": \\"CREATED\\\\nRUNNING\\\\nFINISHED\\\\nUSER_CANCELED\\",\\n \\"RecordCount\\": 999,\\n \\"EvalResults\\": \\"[{\\\\\\"task_id\\\\\\": \\\\\\"11111\\\\\\", \\\\\\"result_type\\\\\\": \\\\\\"HasValidEvalResult\\\\\\", \\\\\\"record_count\\\\\\": 8, \\\\\\"faithfulness\\\\\\": 0.5, \\\\\\"correctness\\\\\\": 0.5, \\\\\\"ndcg\\\\\\": null, \\\\\\"mrr\\\\\\": null, \\\\\\"hit_rate\\\\\\": null, \\\\\\"precision\\\\\\": null}, {\\\\\\"task_id\\\\\\": \\\\\\"11111\\\\\\", \\\\\\"result_type\\\\\\": \\\\\\"FailedToExtractQCA\\\\\\", \\\\\\"record_count\\\\\\": 3, \\\\\\"faithfulness\\\\\\": 0.0, \\\\\\"correctness\\\\\\": 0.0, \\\\\\"ndcg\\\\\\": null, \\\\\\"mrr\\\\\\": null, \\\\\\"hit_rate\\\\\\": null, \\\\\\"precision\\\\\\": null}]\\",\\n \\"EvaluationConfig\\": {\\n \\"Context\\": {\\n \\"JsonPathInSpan\\": \\"\\",\\n \\"SpanName\\": \\"\\",\\n \\"JsonPathInSpanValue\\": \\"\\"\\n },\\n \\"Answer\\": {\\n \\"JsonPathInSpan\\": \\"\\",\\n \\"SpanName\\": \\"\\",\\n \\"JsonPathInSpanValue\\": \\"\\"\\n },\\n \\"Query\\": {\\n \\"JsonPathInSpan\\": \\"\\",\\n \\"SpanName\\": \\"\\",\\n \\"JsonPathInSpanValue\\": \\"\\"\\n }\\n },\\n \\"ModelConfig\\": {\\n \\"Temperature\\": 0,\\n \\"ApiKey\\": \\"\\",\\n \\"Endpoint\\": \\"\\",\\n \\"UseFunctionCall\\": true,\\n \\"TopP\\": 0,\\n \\"Name\\": \\"\\",\\n \\"IsSelfHost\\": true\\n }\\n }\\n}","type":"json"}]', + 'title' => '获取一个链路评估任务的详细信息。', + ], + 'ListOnlineEvalTaskResults' => [ + 'summary' => '获取链路评估任务的结果列表。', + 'path' => '/api/v1/PAILLMTrace/onlineevaltaskresults', + 'methods' => [ + 'get', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'consumes' => [ + 'application/json', + ], + 'produces' => [ + 'application/json', + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATURElearn0UHCCK', + ], + ], + 'parameters' => [ + [ + 'name' => 'TraceIds', + 'in' => 'query', + 'style' => 'simple', + 'schema' => [ + 'description' => '指定一组链路id,只返回这些链路的评估结果。链路id和任务Id至少要设置其中一个。', + 'type' => 'array', + 'items' => [ + 'description' => '链路id', + 'type' => 'string', + 'required' => false, + 'example' => '3fbb8d864ac0004b7e41b6f4512c80ae', + ], + 'required' => false, + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => '当前页数。取值范围:大于0的整数。默认值:1。', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '2', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => '分页大小,默认为10,最大为50。', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '50', + ], + ], + [ + 'name' => 'EvaluationId', + 'in' => 'query', + 'schema' => [ + 'description' => '评估任务的id。链路id和任务Id至少要设置其中一个。', + 'type' => 'string', + 'required' => false, + 'example' => '0bb05ae8888c11ef9757faaa2a1ec0c6', + ], + ], + [ + 'name' => 'MostRecentResultsOnly', + 'in' => 'query', + 'schema' => [ + 'description' => '同一条链路数据可能会被不同的任务都评估过。如果不指定任务id,且同一个链路id有多条评估结果,那么这个参数指定是否只返回最新的一条评估结果。默认为True,只返回最新的一条结果。', + 'type' => 'boolean', + 'required' => false, + 'example' => 'True', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'Id of the request', + 'type' => 'string', + 'example' => '22BA9A5A-E3D8-5B4C-90FC-F33F6E5853F8', + ], + 'Code' => [ + 'description' => '内部错误码。只在响应出错时被设置。', + 'type' => 'string', + 'example' => 'InvalidInputParams', + ], + 'Message' => [ + 'description' => '响应错误信息。只在响应出错时被设置。', + 'type' => 'string', + 'example' => 'must provide trace_id(s) or eval_id', + ], + 'EvaluationResults' => [ + 'description' => '评估结果列表。', + 'type' => 'array', + 'items' => [ + 'description' => '一条链路记录的评估结果。', + 'type' => 'string', + 'example' => '{'."\n" + .' "result": {'."\n" + .' "correctness": {'."\n" + .' "label": "正确",'."\n" + .' "score": 1,'."\n" + .' "reason": " \\n - 回顾问题:询问了26岁理工宅男的礼物建议。\\n - 回顾答案:提供了多种礼物建议,包括智能穿戴设备、最新款电子产品、编程相关书籍、DIY组装套件、桌游或拼图、科幻小说/漫画集、个性化定制礼品、体验式礼物。\\n - 回答内容详细且具体,提供了多种选择。\\n - 回答内容与问题相关,提供了多种礼物建议。\\n</think>\\n<answer>{\\"label\\":\\"正确\\", \\"reason\\":\\"提供了多种礼物建议,与问题相关,内容详细且具体。\\"}</answer></answer>",'."\n" + .' "name": "正确性"'."\n" + .' },'."\n" + .' "faithfulness": {'."\n" + .' "label": "事实",'."\n" + .' "score": 1,'."\n" + .' "reason": " \\n - 回顾查询内容,用户询问了适合26岁理工宅男的礼物建议。\\n - 回答内容提供了多个具体的礼物建议,包括智能穿戴设备、最新款电子产品、编程相关书籍、DIY组装套件、桌游或拼图、科幻小说/漫画集、个性化定制礼品、体验式礼物。\\n - 回答内容提供了多种可能的礼物选项,这些选项在逻辑上是合理的,且与用户的需求相关。\\n - 回答内容没有提供虚构的信息,因此可以认为是基于事实的。\\n</think>\\n<answer>{\\"label\\":\\"事实\\", \\"reason\\":\\"回答内容提供了多种可能的礼物选项,这些选项在逻辑上是合理的,且与用户的需求相关。\\"}</answer></answer>",'."\n" + .' "name": "真实性"'."\n" + .' }'."\n" + .' },'."\n" + .' "eval_app_type": "qa"'."\n" + .'}', + ], + ], + 'TotalCount' => [ + 'description' => '符合条件的评估结果的总数。', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '123', + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"22BA9A5A-E3D8-5B4C-90FC-F33F6E5853F8\\",\\n \\"Code\\": \\"InvalidInputParams\\",\\n \\"Message\\": \\"must provide trace_id(s) or eval_id\\",\\n \\"EvaluationResults\\": [\\n \\"{\\\\n \\\\\\"result\\\\\\": {\\\\n \\\\\\"correctness\\\\\\": {\\\\n \\\\\\"label\\\\\\": \\\\\\"正确\\\\\\",\\\\n \\\\\\"score\\\\\\": 1,\\\\n \\\\\\"reason\\\\\\": \\\\\\" \\\\\\\\n - 回顾问题:询问了26岁理工宅男的礼物建议。\\\\\\\\n - 回顾答案:提供了多种礼物建议,包括智能穿戴设备、最新款电子产品、编程相关书籍、DIY组装套件、桌游或拼图、科幻小说/漫画集、个性化定制礼品、体验式礼物。\\\\\\\\n - 回答内容详细且具体,提供了多种选择。\\\\\\\\n - 回答内容与问题相关,提供了多种礼物建议。\\\\\\\\n</think>\\\\\\\\n<answer>{\\\\\\\\\\\\\\"label\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"正确\\\\\\\\\\\\\\", \\\\\\\\\\\\\\"reason\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"提供了多种礼物建议,与问题相关,内容详细且具体。\\\\\\\\\\\\\\"}</answer></answer>\\\\\\",\\\\n \\\\\\"name\\\\\\": \\\\\\"正确性\\\\\\"\\\\n },\\\\n \\\\\\"faithfulness\\\\\\": {\\\\n \\\\\\"label\\\\\\": \\\\\\"事实\\\\\\",\\\\n \\\\\\"score\\\\\\": 1,\\\\n \\\\\\"reason\\\\\\": \\\\\\" \\\\\\\\n - 回顾查询内容,用户询问了适合26岁理工宅男的礼物建议。\\\\\\\\n - 回答内容提供了多个具体的礼物建议,包括智能穿戴设备、最新款电子产品、编程相关书籍、DIY组装套件、桌游或拼图、科幻小说/漫画集、个性化定制礼品、体验式礼物。\\\\\\\\n - 回答内容提供了多种可能的礼物选项,这些选项在逻辑上是合理的,且与用户的需求相关。\\\\\\\\n - 回答内容没有提供虚构的信息,因此可以认为是基于事实的。\\\\\\\\n</think>\\\\\\\\n<answer>{\\\\\\\\\\\\\\"label\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"事实\\\\\\\\\\\\\\", \\\\\\\\\\\\\\"reason\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"回答内容提供了多种可能的礼物选项,这些选项在逻辑上是合理的,且与用户的需求相关。\\\\\\\\\\\\\\"}</answer></answer>\\\\\\",\\\\n \\\\\\"name\\\\\\": \\\\\\"真实性\\\\\\"\\\\n }\\\\n },\\\\n \\\\\\"eval_app_type\\\\\\": \\\\\\"qa\\\\\\"\\\\n}\\"\\n ],\\n \\"TotalCount\\": 123\\n}","type":"json"}]', + 'title' => '获取一个链路评估任务的结果列表', + ], + 'ListOnlineEvalTasks' => [ + 'summary' => '查找符合条件的链路评估任务。', + 'path' => '/api/v1/PAILLMTrace/onlineevaltasks', + 'methods' => [ + 'get', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'consumes' => [ + 'application/json', + ], + 'produces' => [ + 'application/json', + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '241118', + 'abilityTreeNodes' => [ + 'FEATURElearn0UHCCK', + ], + ], + 'parameters' => [ + [ + 'name' => 'MinTime', + 'in' => 'query', + 'schema' => [ + 'description' => '搜索时间范围的UTC开始时间', + 'type' => 'string', + 'required' => false, + 'example' => '2025-04-05 13:24:25'."\n" + .'2025-04-05', + ], + ], + [ + 'name' => 'MaxTime', + 'in' => 'query', + 'schema' => [ + 'description' => '搜索时间范围的UTC截止时间', + 'type' => 'string', + 'required' => false, + 'example' => '2025-04-07 13:24:25'."\n" + .'2025-04-07', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => '当前页数。取值范围:大于0的整数。默认值:1。', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => '分页大小,默认为10,最大为50。', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '50', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => '用户应用在链路数据里记录的名称。完全匹配。', + 'type' => 'string', + 'required' => false, + 'example' => 'my-foo-llm-app-1.0', + ], + ], + [ + 'name' => 'Status', + 'in' => 'query', + 'schema' => [ + 'description' => '任务状态。完全匹配。', + 'type' => 'string', + 'required' => false, + 'example' => 'CREATED'."\n" + .'RUNNING'."\n" + .'FINISHED'."\n" + .'USER_CANCELED', + ], + ], + [ + 'name' => 'Keyword', + 'in' => 'query', + 'schema' => [ + 'description' => '搜索关键字。会在任务名称、任务id、任务描述这些字段上模糊匹配。', + 'type' => 'string', + 'required' => false, + 'example' => 'foo', + ], + ], + [ + 'name' => 'SamplingMethod', + 'in' => 'query', + 'schema' => [ + 'description' => '任务数据采样方式。窗口或者概率。精确匹配。', + 'type' => 'string', + 'required' => false, + 'example' => 'Window'."\n" + .'Ratio', + ], + ], + [ + 'name' => 'SortBy', + 'in' => 'query', + 'schema' => [ + 'description' => '用于排序返回结果的字段,目前支持TaskId, CreateTime,TaskName,和Status。不填则默认用CreateTime', + 'type' => 'string', + 'required' => false, + 'example' => 'CreateTime'."\n" + .'Status'."\n" + .'TaskId'."\n" + .'TaskName', + ], + ], + [ + 'name' => 'SortOrder', + 'in' => 'query', + 'schema' => [ + 'description' => '返回结果的排序方向。取值范围:ASC(升序)、DESC(降序)。不填则默认用DESC。', + 'type' => 'string', + 'required' => false, + 'example' => 'ASC'."\n" + .'DESC', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'Id of the request', + 'type' => 'string', + 'example' => '6F352A02-9C0D-54A7-B57C-663CF71D5714', + ], + 'Code' => [ + 'description' => '内部错误码。只在响应出错时被设置。', + 'type' => 'string', + 'example' => 'InvalidInputParams', + ], + 'Message' => [ + 'description' => '响应错误信息。只在响应出错时被设置。', + 'type' => 'string', + 'example' => 'page number should be greater than 0', + ], + 'TotalCount' => [ + 'description' => '符合条件的任务的总数。', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '22', + ], + 'Tasks' => [ + 'description' => '任务列表。', + 'type' => 'array', + 'items' => [ + 'description' => '任务的详细信息。', + 'type' => 'object', + 'properties' => [ + 'Id' => [ + 'description' => '任务ID。', + 'type' => 'string', + 'example' => '9f50cd72efcf36535152ee811a911115', + ], + 'Name' => [ + 'description' => '任务名称。', + 'type' => 'string', + 'example' => 'my-foo-evaluation-task', + ], + 'AliyunUid' => [ + 'description' => '任务创建者的阿里云账号(主账号)。', + 'type' => 'string', + 'example' => '1512522691911111', + ], + 'UserId' => [ + 'description' => '任务创建者的阿里云子账号', + 'type' => 'string', + 'example' => '2222222222', + ], + 'AppName' => [ + 'description' => '该任务针对的用户应用的名称。', + 'type' => 'string', + 'example' => 'my-llm-app', + ], + 'Filters' => [ + 'description' => '评估任务要搜索一定量的用户应用产生的链路数据,作为评估操作的输入数据。这是定义搜索筛选条件的列表。', + 'type' => 'array', + 'items' => [ + 'description' => '过滤条件对象。', + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => '过滤条件的key。', + 'type' => 'string', + 'enumValueTitles' => [ + 'Status' => 'Status', + 'SpanName' => 'SpanName', + 'Input' => 'Input', + 'TraceType' => 'TraceType', + 'SpanType' => 'SpanType', + 'ServiceName' => 'ServiceName', + 'Output' => 'Output', + 'TraceName' => 'TraceName', + 'ServiceId' => 'ServiceId', + ], + 'example' => 'ServiceId'."\n" + .'ServiceName'."\n" + .'Input'."\n" + .'Output'."\n" + .'Status'."\n" + .'TraceType'."\n" + .'SpanType'."\n" + .'TraceName'."\n" + .'SpanName', + ], + 'Operator' => [ + 'description' => '过滤条件匹配操作符。', + 'type' => 'string', + 'enumValueTitles' => [ + 'Contains' => 'Contains', + '=' => '=', + 'StartsWith' => 'StartsWith', + ], + 'example' => '='."\n" + .'StartsWith'."\n" + .'Contains', + ], + 'Value' => [ + 'description' => '过滤条件的值。', + 'type' => 'string', + 'example' => 'foo', + ], + ], + ], + ], + 'GmtCreateTime' => [ + 'description' => '任务UTC创建时间。', + 'type' => 'string', + 'example' => '2025-04-07 13:24:35', + ], + 'GmtStartTime' => [ + 'description' => '任务UTC开始时间。', + 'type' => 'string', + 'example' => '2025-04-08 13:24:35', + ], + 'GmtEndTime' => [ + 'description' => '任务UTC结束时间。', + 'type' => 'string', + 'example' => '2025-04-09 13:24:35', + ], + 'SamplingFrequencyMinutes' => [ + 'description' => '评估任务要搜索一定量的用户应用产生的链路数据,作为评估操作的输入数据。这是定义任务每次搜索输入数据的时间窗口的宽度。', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '12', + ], + 'SamplingRatio' => [ + 'description' => '评估任务在一个时间窗口里搜索到的数据,真正作为评估输入数据的百分比。比如100表示搜索到的所有数据都作为评估输入。又比如20表示从搜索到的数据里随机取20%作为评估输入。', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '50', + ], + 'Description' => [ + 'description' => '任务描述信息', + 'type' => 'string', + 'example' => '评估任务', + ], + 'Status' => [ + 'description' => '任务状态', + 'type' => 'string', + 'example' => 'CREATED'."\n" + .'RUNNING'."\n" + .'FINISHED'."\n" + .'USER_CANCELED', + ], + 'EvaluationConfig' => [ + 'description' => '从json格式的链路数据里要一些提取特定路径上的值,作为评估操作的输入。在这个EvaluationConfig结构体里定义这些json路径。', + '$ref' => '#/components/schemas/EvaluationConfig', + ], + 'ModelConfig' => [ + 'description' => '评估任务内部使用的大模型的访问配置结构体。', + '$ref' => '#/components/schemas/ModelConfig', + ], + 'RecordCount' => [ + 'description' => '评估记录数量。', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '11', + ], + 'EvalResults' => [ + 'description' => '从该任务所有的评估结果,通过聚合计算得到的聚合评估结果。', + 'type' => 'string', + 'example' => '[{"task_id": "00000", "result_type": "HasValidEvalResult", "record_count": 8, "faithfulness": 0.5, "correctness": 0.5, "ndcg": null, "mrr": null, "hit_rate": null, "precision": null}, {"task_id": "00000", "result_type": "FailedToExtractQCA", "record_count": 3, "faithfulness": 0.0, "correctness": 0.0, "ndcg": null, "mrr": null, "hit_rate": null, "precision": null}]', + ], + ], + ], + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"6F352A02-9C0D-54A7-B57C-663CF71D5714\\",\\n \\"Code\\": \\"InvalidInputParams\\",\\n \\"Message\\": \\"page number should be greater than 0\\",\\n \\"TotalCount\\": 22,\\n \\"Tasks\\": [\\n {\\n \\"Id\\": \\"9f50cd72efcf36535152ee811a911115\\",\\n \\"Name\\": \\"my-foo-evaluation-task\\",\\n \\"AliyunUid\\": \\"1512522691911111\\",\\n \\"UserId\\": \\"2222222222\\",\\n \\"AppName\\": \\"my-llm-app\\",\\n \\"Filters\\": [\\n {\\n \\"Key\\": \\"ServiceId\\\\nServiceName\\\\nInput\\\\nOutput\\\\nStatus\\\\nTraceType\\\\nSpanType\\\\nTraceName\\\\nSpanName\\",\\n \\"Operator\\": \\"=\\\\nStartsWith\\\\nContains\\",\\n \\"Value\\": \\"foo\\"\\n }\\n ],\\n \\"GmtCreateTime\\": \\"2025-04-07 13:24:35\\",\\n \\"GmtStartTime\\": \\"2025-04-08 13:24:35\\",\\n \\"GmtEndTime\\": \\"2025-04-09 13:24:35\\",\\n \\"SamplingFrequencyMinutes\\": 12,\\n \\"SamplingRatio\\": 50,\\n \\"Description\\": \\"评估任务\\",\\n \\"Status\\": \\"CREATED\\\\nRUNNING\\\\nFINISHED\\\\nUSER_CANCELED\\",\\n \\"EvaluationConfig\\": {\\n \\"Context\\": {\\n \\"JsonPathInSpan\\": \\"\\",\\n \\"SpanName\\": \\"\\",\\n \\"JsonPathInSpanValue\\": \\"\\"\\n },\\n \\"Answer\\": {\\n \\"JsonPathInSpan\\": \\"\\",\\n \\"SpanName\\": \\"\\",\\n \\"JsonPathInSpanValue\\": \\"\\"\\n },\\n \\"Query\\": {\\n \\"JsonPathInSpan\\": \\"\\",\\n \\"SpanName\\": \\"\\",\\n \\"JsonPathInSpanValue\\": \\"\\"\\n }\\n },\\n \\"ModelConfig\\": {\\n \\"Temperature\\": 0,\\n \\"ApiKey\\": \\"\\",\\n \\"Endpoint\\": \\"\\",\\n \\"UseFunctionCall\\": true,\\n \\"TopP\\": 0,\\n \\"Name\\": \\"\\",\\n \\"IsSelfHost\\": true\\n },\\n \\"RecordCount\\": 11,\\n \\"EvalResults\\": \\"[{\\\\\\"task_id\\\\\\": \\\\\\"00000\\\\\\", \\\\\\"result_type\\\\\\": \\\\\\"HasValidEvalResult\\\\\\", \\\\\\"record_count\\\\\\": 8, \\\\\\"faithfulness\\\\\\": 0.5, \\\\\\"correctness\\\\\\": 0.5, \\\\\\"ndcg\\\\\\": null, \\\\\\"mrr\\\\\\": null, \\\\\\"hit_rate\\\\\\": null, \\\\\\"precision\\\\\\": null}, {\\\\\\"task_id\\\\\\": \\\\\\"00000\\\\\\", \\\\\\"result_type\\\\\\": \\\\\\"FailedToExtractQCA\\\\\\", \\\\\\"record_count\\\\\\": 3, \\\\\\"faithfulness\\\\\\": 0.0, \\\\\\"correctness\\\\\\": 0.0, \\\\\\"ndcg\\\\\\": null, \\\\\\"mrr\\\\\\": null, \\\\\\"hit_rate\\\\\\": null, \\\\\\"precision\\\\\\": null}]\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => '获取链路评估任务列表。', + ], + 'StopOnlineEvalTask' => [ + 'summary' => '停止一个链路评估任务的执行。任务停止后,不能再做任何配置改动,任务也不会再生成任何新的评估结果。', + 'path' => '/api/v1/PAILLMTrace/onlineevaltasks/{TaskId}/stop', + 'methods' => [ + 'put', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'consumes' => [ + 'application/json', + ], + 'produces' => [ + 'application/json', + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '241121', + 'abilityTreeNodes' => [ + 'FEATURElearn0UHCCK', + ], + ], + 'parameters' => [ + [ + 'name' => 'TaskId', + 'in' => 'path', + 'schema' => [ + 'description' => '链路评估任务的id。', + 'type' => 'string', + 'required' => true, + 'example' => '518b1d2f3cfca4ad3836ace4db69ba59c', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'Id of the POP request', + 'type' => 'string', + 'example' => '31E5FBC2-792D-5B5C-A5EB-3019984ABFC8', + ], + 'Code' => [ + 'description' => '内部错误码。只在响应出错时被设置。', + 'type' => 'string', + 'example' => 'InvalidInputParams', + ], + 'Message' => [ + 'description' => '响应错误信息。只在响应出错时被设置。', + 'type' => 'string', + 'example' => 'task id is empty', + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"31E5FBC2-792D-5B5C-A5EB-3019984ABFC8\\",\\n \\"Code\\": \\"InvalidInputParams\\",\\n \\"Message\\": \\"task id is empty\\"\\n}","type":"json"}]', + 'title' => '停止一个链路评估任务。', + ], + 'UpdateOnlineEvalTask' => [ + 'summary' => '更改一个链路评估任务的配置。', + 'path' => '/api/v1/PAILLMTrace/onlineevaltasks/{TaskId}', + 'methods' => [ + 'put', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'consumes' => [ + 'application/json', + ], + 'produces' => [ + 'application/json', + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '241120', + 'abilityTreeNodes' => [ + 'FEATURElearn0UHCCK', + ], + ], + 'parameters' => [ + [ + 'name' => 'TaskId', + 'in' => 'path', + 'schema' => [ + 'description' => '链路评估任务的id。', + 'type' => 'string', + 'required' => true, + 'example' => '518bc0f833d9a4ad3836ace4db69ba59c', + ], + ], + [ + 'name' => 'body', + 'in' => 'body', + 'style' => 'json', + 'schema' => [ + 'description' => '请求体。', + 'type' => 'object', + 'properties' => [ + 'TaskName' => [ + 'description' => '任务名称', + 'type' => 'string', + 'required' => false, + 'example' => 'foo大模型应用效果评估', + ], + 'AppName' => [ + 'description' => '用户的基于大模型的应用的名称', + 'type' => 'string', + 'required' => false, + 'example' => 'my-llm-one', + ], + 'Filters' => [ + 'description' => '评估任务要搜索一定量的用户应用产生的链路数据,作为评估操作的输入数据。这是定义搜索筛选条件的列表。', + 'type' => 'array', + 'items' => [ + 'description' => '自定义过滤条件对象。', + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => '过滤条件的key', + 'type' => 'string', + 'required' => false, + 'enumValueTitles' => [ + 'Status' => 'Status', + 'SpanName' => 'SpanName', + 'Input' => 'Input', + 'TraceType' => 'TraceType', + 'SpanType' => 'SpanType', + 'ServiceName' => 'ServiceName', + 'Output' => 'Output', + 'TraceName' => 'TraceName', + 'ServiceId' => 'ServiceId', + ], + 'example' => 'ServiceId'."\n" + .'ServiceName'."\n" + .'Input'."\n" + .'Output'."\n" + .'Status'."\n" + .'TraceType'."\n" + .'SpanType'."\n" + .'TraceName'."\n" + .'SpanName', + ], + 'Operator' => [ + 'description' => '过滤条件匹配操作符', + 'type' => 'string', + 'required' => false, + 'enumValueTitles' => [ + 'Contains' => 'Contains', + '=' => '=', + 'StartsWith' => 'StartsWith', + ], + 'example' => '='."\n" + .'StartsWith'."\n" + .'Contains', + ], + 'Value' => [ + 'description' => '过滤条件的值', + 'type' => 'string', + 'required' => false, + 'example' => 'foo', + ], + ], + 'required' => false, + ], + 'required' => false, + ], + 'StartTime' => [ + 'description' => '链路数据的UTC开始时间', + 'type' => 'string', + 'required' => false, + 'example' => '2024-07-31 08:30:00', + ], + 'EndTime' => [ + 'description' => '链路数据的UTC结束时间', + 'type' => 'string', + 'required' => false, + 'example' => '2024-09-02 22:24:00', + ], + 'SamplingFrequencyMinutes' => [ + 'description' => '评估任务要搜索一定量的用户应用产生的链路数据,作为评估操作的输入数据。这是定义任务每次搜索输入数据的时间窗口的宽度。', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + ], + 'SamplingRatio' => [ + 'description' => '评估任务在一个时间窗口里搜索到的数据,真正作为评估输入数据的百分比。比如100表示搜索到的所有数据都作为评估输入。又比如20表示从搜索到的数据里随机取20%作为评估输入。', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '50', + ], + 'Description' => [ + 'description' => '任务描述信息', + 'type' => 'string', + 'required' => false, + 'example' => '这个任务做了这些事。', + ], + 'EvaluationConfig' => [ + 'description' => '从json格式的链路数据里要一些提取特定路径上的值,作为评估操作的输入。在这个EvaluationConfig结构体里定义这些json路径。', + 'required' => false, + '$ref' => '#/components/schemas/EvaluationConfig', + ], + 'ModelConfig' => [ + 'description' => '评估任务内部使用的大模型的访问配置结构体。', + 'required' => false, + '$ref' => '#/components/schemas/ModelConfig', + ], + ], + 'required' => false, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'Id of the POP request', + 'type' => 'string', + 'example' => '6A87228C-969A-1381-98CF-AE07AE630FA5', + ], + 'Code' => [ + 'description' => '内部错误码。只在响应出错时被设置。', + 'type' => 'string', + 'example' => 'InvalidInputParams', + ], + 'Message' => [ + 'description' => '响应错误信息。只在响应出错时被设置。', + 'type' => 'string', + 'example' => 'cannot modify a stopped task', + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"6A87228C-969A-1381-98CF-AE07AE630FA5\\",\\n \\"Code\\": \\"InvalidInputParams\\",\\n \\"Message\\": \\"cannot modify a stopped task\\"\\n}","type":"json"}]', + 'title' => '更改一个链路评估任务的配置。', + ], + 'CreateOnlineEvalTask' => [ + 'summary' => '创建一个链路评估任务。系统会根据任务配置,从用户的链路数据里采样部分数据,用大模型对这些链路的执行效果做评估,并记录评估结果。', + 'path' => '/api/v1/PAILLMTrace/onlineevaltasks', + 'methods' => [ + 'post', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'consumes' => [ + 'application/json', + ], + 'produces' => [ + 'application/json', + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '241117', + 'abilityTreeNodes' => [ + 'FEATURElearn0UHCCK', + ], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'body', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => '请求Body。', + 'type' => 'object', + 'properties' => [ + 'TaskName' => [ + 'description' => '任务名称。', + 'type' => 'string', + 'required' => false, + 'example' => 'my-llm-app-eval-task-1', + ], + 'AppName' => [ + 'description' => '用户应用在链路数据里记录的名称', + 'type' => 'string', + 'required' => false, + 'example' => 'my-best-llm-app', + ], + 'StartTime' => [ + 'description' => '链路数据的UTC开始时间', + 'type' => 'string', + 'required' => false, + 'example' => '2025-04-05 14:00:01'."\n" + .'2025-04-05', + ], + 'EndTime' => [ + 'description' => '链路数据的UTC结束时间', + 'type' => 'string', + 'required' => false, + 'example' => '2025-06-05 14:00:01'."\n" + .'2025-06-05', + ], + 'SamplingFrequencyMinutes' => [ + 'description' => '评估任务要搜索一定量的用户应用产生的链路数据,作为评估操作的输入数据。这是定义任务每次搜索输入数据的时间窗口的宽度。', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '9', + ], + 'Description' => [ + 'description' => '任务描述信息', + 'type' => 'string', + 'required' => false, + 'example' => '4月到6月数据评估', + ], + 'Filters' => [ + 'description' => '评估任务要搜索一定量的用户应用产生的链路数据,作为评估操作的输入数据。这是定义搜索筛选条件的列表。', + 'type' => 'array', + 'items' => [ + 'description' => '过滤条件对象。', + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => '过滤条件的key', + 'type' => 'string', + 'required' => false, + 'enumValueTitles' => [ + 'Status' => 'Status', + 'SpanName' => 'SpanName', + 'Input' => 'Input', + 'TraceType' => 'TraceType', + 'SpanType' => 'SpanType', + 'ServiceName' => 'ServiceName', + 'Output' => 'Output', + 'TraceName' => 'TraceName', + 'ServiceId' => 'ServiceId', + ], + 'example' => 'ServiceId'."\n" + .'ServiceName'."\n" + .'Input'."\n" + .'Output'."\n" + .'Status'."\n" + .'TraceType'."\n" + .'SpanType'."\n" + .'TraceName'."\n" + .'SpanName', + ], + 'Operator' => [ + 'description' => '过滤条件匹配操作符', + 'type' => 'string', + 'required' => false, + 'enumValueTitles' => [ + 'Contains' => 'Contains', + '=' => '=', + 'StartsWith' => 'StartsWith', + ], + 'example' => '='."\n" + .'StartsWith'."\n" + .'Contains'."\n", + ], + 'Value' => [ + 'description' => '过滤条件的值', + 'type' => 'string', + 'required' => false, + 'example' => 'foo', + ], + ], + 'required' => false, + ], + 'required' => false, + ], + 'SamplingRatio' => [ + 'description' => '评估任务在一个时间窗口里搜索到的数据,真正作为评估输入数据的百分比。比如100表示搜索到的所有数据都作为评估输入。又比如20表示从搜索到的数据里随机取20%作为评估输入。', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '50', + ], + 'EvaluationConfig' => [ + 'description' => '从json格式的链路数据里要一些提取特定路径上的值,作为评估操作的输入。在这个EvaluationConfig结构体里定义这些json路径。', + 'required' => false, + '$ref' => '#/components/schemas/EvaluationConfig', + ], + 'ModelConfig' => [ + 'description' => '评估任务内部使用的大模型的访问配置结构体。', + 'required' => false, + '$ref' => '#/components/schemas/ModelConfig', + ], + ], + 'required' => false, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'Id of the request', + 'type' => 'string', + 'example' => '6A87228C-969A-1381-98CF-AE07AE630FA5', + ], + 'TaskId' => [ + 'description' => '新创建的链路评估任务的id。', + 'type' => 'string', + 'example' => '711ef9112343286810abbfce04e161ee', + ], + 'Code' => [ + 'description' => '内部错误码。只在响应出错时被设置。', + 'type' => 'string', + 'example' => 'InvalidInputParams', + ], + 'Message' => [ + 'description' => '响应错误信息。只在响应出错时被设置。', + 'type' => 'string', + 'example' => 'EvaluationConfig.Answer.SpanName is required.', + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"6A87228C-969A-1381-98CF-AE07AE630FA5\\",\\n \\"TaskId\\": \\"711ef9112343286810abbfce04e161ee\\",\\n \\"Code\\": \\"InvalidInputParams\\",\\n \\"Message\\": \\"EvaluationConfig.Answer.SpanName is required.\\"\\n}","type":"json"}]', + 'title' => '创建一个链路评估任务。', + ], + 'ListTracesDatas' => [ + 'summary' => '每条链路数据记录,可以命名为trace。一个trace包含了一组span记录。这个API以trace为粒度执行搜索,按照指定条件获取trace数据列表。', + 'path' => '/api/v1/PAILLMTrace/TracesDatas', + 'methods' => [ + 'get', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'consumes' => [ + 'application/json', + ], + 'produces' => [ + 'application/json', + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '215404', + 'abilityTreeNodes' => [ + 'FEATURElearn0UHCCK', + ], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'TraceIds', + 'in' => 'query', + 'style' => 'simple', + 'schema' => [ + 'description' => '链路id数组。', + 'type' => 'array', + 'items' => [ + 'description' => '一个链路id', + 'type' => 'string', + 'required' => false, + 'example' => '4d097fb3d451bad0148feefb4ab95', + ], + 'required' => false, + ], + ], + [ + 'name' => 'SpanIds', + 'in' => 'query', + 'style' => 'simple', + 'schema' => [ + 'description' => 'span id数组。一条链路记录里包含一个或多个span。', + 'type' => 'array', + 'items' => [ + 'title' => 'The ids to list', + 'description' => '一个span id', + 'type' => 'string', + 'required' => false, + 'example' => '17d4ef87a1fe8', + ], + 'required' => false, + ], + ], + [ + 'name' => 'SessionId', + 'in' => 'query', + 'schema' => [ + 'description' => '链路记录里attributes.gen_ai.session.id字段的值。默认为空。', + 'type' => 'string', + 'required' => false, + 'example' => 'e5895063-9b29-4ce4-b0fd-a018bfa11111', + ], + ], + [ + 'name' => 'MinTime', + 'in' => 'query', + 'schema' => [ + 'title' => '当总结果个数大于MaxResults时,用于翻页的token。', + 'description' => '搜索时间范围下限,UTC时间,YYYY-mm-dd或者YYYY-MM-DD HH:mm:ss格式。默认(当前时间 - 2天)', + 'type' => 'string', + 'required' => true, + 'example' => '2024-01-31'."\n" + .'2024-12-31 23:59:59', + ], + ], + [ + 'name' => 'MaxTime', + 'in' => 'query', + 'schema' => [ + 'description' => '搜索时间范围上限,UTC时间,YYYY-mm-dd或者YYYY-MM-DD HH:mm:ss格式。默认(当前时间 + 10分钟)', + 'type' => 'string', + 'required' => false, + 'example' => '2024-01-31'."\n" + .'2024-12-31 23:59:59', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => '分页查询时设置的页码。 起始值:1。默认值:1。', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => '分页大小,默认值10,最大值50。', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + ], + ], + [ + 'name' => 'SpanName', + 'in' => 'query', + 'schema' => [ + 'description' => '查找Trace时使用的过滤条件,返回包含该span名称的Trace。', + 'type' => 'string', + 'required' => false, + 'example' => 'ChatFlow.astream_chat', + ], + ], + [ + 'name' => 'LlmAppName', + 'in' => 'query', + 'schema' => [ + 'description' => '链路记录里,resources.service.app.name字段的值。允许a-zA-Z0-9 dot, hyphen, underscore这些字符。必须完全匹配。默认为空。', + 'type' => 'string', + 'required' => false, + 'example' => 'My.super_LLM-app2', + ], + ], + [ + 'name' => 'MinDuration', + 'in' => 'query', + 'schema' => [ + 'description' => '查找Trace时使用的过滤条件,Trace的最小持续时长。单位为秒(s)。', + 'type' => 'number', + 'format' => 'float', + 'required' => false, + 'example' => '2', + ], + ], + [ + 'name' => 'MaxDuration', + 'in' => 'query', + 'schema' => [ + 'description' => '查找Trace时使用的过滤条件,Trace的最大持续时长。单位为秒(s)。', + 'type' => 'number', + 'format' => 'float', + 'required' => false, + 'example' => '5', + ], + ], + [ + 'name' => 'OpentelemetryCompatible', + 'in' => 'query', + 'schema' => [ + 'description' => '返回的json格式数据是否可以直接转换成opentelemetry TracesData protobuf对象。默认为False。OpenTelemetry格式兼容的json数据,格式更复杂,除非为了生成OpenTelemetry的protobuf对象,一般不需要这种格式的数据。', + 'type' => 'boolean', + 'required' => false, + 'example' => 'False', + 'default' => 'False', + ], + ], + [ + 'name' => 'HasStatusMessage', + 'in' => 'query', + 'schema' => [ + 'description' => '是否只返回包含有statusMessage不为空的span的链路记录。比如1个链路里有3个span,如果该项为True,3个span任何1个有非空的statusMessage,那么这个链路就符合条件。默认为False,不用statusMessage状态做筛选。', + 'type' => 'boolean', + 'required' => false, + 'example' => 'False', + ], + ], + [ + 'name' => 'HasEvents', + 'in' => 'query', + 'schema' => [ + 'description' => '是否只返回包含有events不为空的span的链路记录。比如1个链路里有3个span,如果该项为True,3个span任何1个有非空的events,那么这个链路记录就符合条件。默认为False,不用events状态做筛选。', + 'type' => 'boolean', + 'required' => false, + 'example' => 'False', + ], + ], + [ + 'name' => 'OwnerSubId', + 'in' => 'query', + 'schema' => [ + 'description' => '链路记录里resources.service.owner.sub_id字段的值。允许a-zA-Z0-9 dot, hyphen, underscore这些字符。默认为空。', + 'type' => 'string', + 'required' => false, + 'example' => '123456789', + ], + ], + [ + 'name' => 'EndUserId', + 'in' => 'query', + 'schema' => [ + 'description' => '链路记录里attributes.service.app.user_id字段的值。允许a-zA-Z0-9 dot, hyphen, underscore这些字符。默认为空。', + 'type' => 'string', + 'required' => false, + 'example' => 'end-user.12345', + ], + ], + [ + 'name' => 'Filters', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => '额外的过滤参数', + 'type' => 'array', + 'items' => [ + 'description' => '过滤参数对象', + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => '过滤参数名称,支持若干预定义参数和用户自定义参数。'."\n" + ."\n" + .'1. 预定义参数,大小写不敏感,包括:\'serviceid\', \'servicename\', \'input\', \'output\', \'status\', \'tracetype\', \'tracename\'。这些预定义参数对应的span属性如下:'."\n" + ."\n" + .'serviceid: resources.service.id'."\n" + ."\n" + .'servicename: resources.service.name'."\n" + ."\n" + .'input: attributes.input.value'."\n" + ."\n" + .'output: attributes.output.value'."\n" + ."\n" + .'status: statusCode'."\n" + ."\n" + .'tracetype: parentSpanId是0的span,attributes.gen_ai.span.kind'."\n" + ."\n" + .'tracename: parentSpanId是0的span,spanName'."\n" + ."\n" + .'2. 自定义参数,大小写敏感。:'."\n" + .'用户可以自定义参数名称。这个名称会作为一个以attributes开头的json路径的后缀。服务端以这个json路径为位置,按operator和value,筛选符合条件的span。'."\n" + ."\n" + .'比如用户自定义key为 foo.bar,那么服务端会在attributes.foo.bar 这个位置执行筛选。比如用户自定义key为 gen_ai.FOO.BAR,那么服务端会在attributes.gen_ai.FOO.BAR 这个位置执行筛选。', + 'type' => 'string', + 'required' => false, + 'enumValueTitles' => [ + 'Status' => 'Status', + 'SpanName' => 'SpanName', + 'Input' => 'Input', + 'TraceType' => 'TraceType', + 'SpanType' => 'SpanType', + 'ServiceName' => 'ServiceName', + 'Output' => 'Output', + 'TraceName' => 'TraceName', + 'ServiceId' => 'ServiceId', + ], + 'example' => 'output', + ], + 'Operator' => [ + 'description' => '参数运算符。大小写不敏感。目前支持:‘=’,’contains‘,\'startswith\'。', + 'type' => 'string', + 'required' => false, + 'enumValueTitles' => [ + 'contains' => 'contains', + '=' => '=', + 'startsWith' => 'startsWith', + ], + 'example' => 'contains', + ], + 'Value' => [ + 'description' => '过滤参数取值。对于contains操作,大小写敏感。其它操作,大小写不敏感。', + 'type' => 'string', + 'required' => false, + 'example' => '智能填写', + ], + ], + 'required' => false, + ], + 'required' => false, + ], + ], + [ + 'name' => 'TraceReduceMethod', + 'in' => 'query', + 'schema' => [ + 'description' => '对返回的链路数据做内容简化的方法,用于减少数据返回量。'."\n" + ."\n" + .'REMOVE_EMBEDDING - 将所有的embedding数组具体内容清除'."\n" + ."\n" + .'ROOT_ONLY - 每个链路仅返回root span,且如果root span内容也做REMOVE_EMBEDDING处理。'."\n" + ."\n" + .'不填写 - 则维持原有数据', + 'type' => 'string', + 'required' => false, + 'enumValueTitles' => [ + 'ROOT_ONLY' => 'ROOT_ONLY', + 'REMOVE_EMBEDDING' => 'REMOVE_EMBEDDING', + ], + 'example' => 'REMOVE_EMBEDDING'."\n" + .'ROOT_ONLY', + ], + ], + [ + 'name' => 'SortBy', + 'in' => 'query', + 'schema' => [ + 'description' => '返回结果排序字段,目前支持trace开始时间、trace时长、trace总token数量、和trace id。', + 'type' => 'string', + 'required' => false, + 'enumValueTitles' => [ + 'StartTime' => 'StartTime', + 'Duration' => 'Duration', + ], + 'example' => 'StartTime'."\n" + .'Duration'."\n" + .'TotalTokens'."\n" + .'TraceId', + ], + ], + [ + 'name' => 'SortOrder', + 'in' => 'query', + 'schema' => [ + 'description' => '排序方向。取值范围:'."\n" + .'- **ASC**:升序'."\n" + .'- **DESC**(默认值):降序', + 'type' => 'string', + 'required' => false, + 'enumValueTitles' => [ + 'ASC' => 'ASC', + 'DESC' => 'DESC', + ], + 'example' => 'DESC'."\n" + .'ASC', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'title' => '总记录数。', + 'description' => '符合条件的trace的总数。', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '22', + ], + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'POP request id', + 'type' => 'string', + 'example' => '6A87228C-969A-1381-98CF-AE07AE630FA5', + ], + 'Code' => [ + 'description' => '内部错误码。只在响应出错时被设置。', + 'type' => 'string', + 'example' => 'ExecutionFailure', + ], + 'Message' => [ + 'description' => '响应错误信息。只在响应出错时被设置。', + 'type' => 'string', + 'example' => 'failed to get trace data', + ], + 'Traces' => [ + 'description' => 'json array,每个element是一个trace的json string。array长度等于或者小于page size参数值。', + 'type' => 'array', + 'items' => [ + 'description' => '代表一个trace的json string。', + 'type' => 'any', + 'example' => 'open telemetry compatible:'."\n" + .'{"resource_spans":[{"resource":{"attributes":[{"key":"telemetry.sdk.language","value":{"string_value":"python"}},{"key":"telemetry.sdk.name","value":{"string_value":"opentelemetry"}},{"key":"telemetry.sdk.version","value":{"string_value":"1.25.0"}},{"key":"service.name","value":{"string_value":"llm_trace_llamaindex_test_template"}},{"key":"service.version","value":{"string_value":"0.0.1"}},{"key":"deployment.environment","value":{"string_value":"cn-hangzhou"}},{"key":"service.app.name","value":{"string_value":"llm_trace_llamaindex_test"}},{"key":"service.owner.id","value":{"string_value":"177393915"}},{"key":"service.owner.sub_id","value":{"string_value":"230589443368"}}]},"scope_spans":[{"spans":[{"trace_id":"ae40025eae77fbab21687bd7e41c","span_id":"e09710fbd3c6","parent_span_id":"0","name":"query","kind":"SPAN_KIND_INTERNAL","start_time_unix_nano":"1718910212440262841","end_time_unix_nano":"1718910215403326721","attributes":[{"key":"input.value","value":{"string_value":"Question 1: what is pai-llm-trace."}},{"key":"openinference.span.kind","value":{"string_value":"CHAIN"}},{"key":"output.value","value":{"string_value":"The term \\"pai-llm-trace\\" refers to a component or module within the project or codebase being worked on."}},{"key":"pop.request.id","value":{"string_value":"1C714E-057D-1216-835A-06F722E4F3"}}],"status":{"code":"STATUS_CODE_OK"}},{"trace_id":"444bae400277fbab21687bd7e41c","span_id":"5686fa7a6b85b","parent_span_id":"e0a5920fbd3c6","name":"retrieve","kind":"SPAN_KIND_INTERNAL","start_time_unix_nano":"1718910212440884059","end_time_unix_nano":"1718910213181800657","attributes":[{"key":"input.value","value":{"string_value":"Question 1: what is pai-llm-trace."}},{"key":"openinference.span.kind","value":{"string_value":"RETRIEVER"}},{"key":"pop.request.id","value":{"string_value":"E8A1F8D9-D35A-1F9F-B724-5DA12E6F612"}},{"key":"retrieval.documents","value":{"array_value":{"values":[{"kvlist_value":{"values":[{"key":"document.content","value":{"string_value":".PHONY: clean package test\\n\\nclean:\\n\\trm -rf build dist src/*.egg-info src/pai/llm_trace/__pycache__ src/pai/llm_trace/__pycache__\\n\\npackage: clean\\n\\tpip install build && python -m build\\n\\nrun:\\n\\tbash tools/run_test.sh"}},{"key":"document.id","value":{"string_value":"c3bd0f7e-2-42f7-964c-2fcc698657db"}},{"key":"document.metadata","value":{"string_value":"{\\"file_path\\": \\"/mnt/disk1t/weidan.kong/work/llm_trace/client/makefile\\", \\"file_name\\": \\"makefile\\", \\"file_size\\": 213, \\"creation_date\\": \\"2024-05-10\\", \\"last_modified_date\\": \\"2024-05-10\\"}"}},{"key":"document.score","value":{"double_value":0.592955599044689}},{"key":"vector_index","value":{"int_value":"0"}}]}}]}}}],"status":{"code":"STATUS_CODE_OK"}},{"trace_id":"444bae4e77fbab21687bd7e41c","span_id":"f2fc6f6acbc7","parent_span_id":"f08a7a6b85b","name":"embedding","kind":"SPAN_KIND_INTERNAL","start_time_unix_nano":"1718910212441468561","end_time_unix_nano":"1718910212617063167","attributes":[{"key":"embedding.embeddings","value":{"array_value":{"values":[{"kvlist_value":{"values":[{"key":"embedding.text","value":{"string_value":"Question 1: what is pai-llm-trace."}},{"key":"embedding.vector","value":{"string_value":"PAI LLM Trace system hid 1536 actual items"}},{"key":"vector_index","value":{"int_value":"0"}}]}}]}}},{"key":"embedding.model_name","value":{"string_value":"text-embedding-ada-002"}},{"key":"openinference.span.kind","value":{"string_value":"EMBEDDING"}},{"key":"pop.request.id","value":{"string_value":"56B9CCC3-CC84-0ED-53F60DC4A318"}}],"status":{"code":"STATUS_CODE_OK"}},{"trace_id":"ae25eae77fbab21687bd7e41c","span_id":"f2ebc6f12b27","parent_span_id":"e0a710fbd3c6","name":"synthesize","kind":"SPAN_KIND_INTERNAL","start_time_unix_nano":"1718910213465461860","end_time_unix_nano":"1718910215131655555","attributes":[{"key":"input.value","value":{"string_value":"Question 1: what is pai-llm-trace."}},{"key":"openinference.span.kind","value":{"string_value":"CHAIN"}},{"key":"output.value","value":{"string_value":"The term \\"pai-llm-trace\\" refers to a component or module within the project or codebase being worked on."}},{"key":"pop.request.id","value":{"string_value":"67D34C0D-1CD5-11B7-BEE2-05649"}}],"status":{"code":"STATUS_CODE_OK"}},{"trace_id":"21687bd7e41c","span_id":"d8f3fc7c","parent_span_id":"f2ebc12b27","name":"chunking","kind":"SPAN_KIND_INTERNAL","start_time_unix_nano":"1718910213467525240","end_time_unix_nano":"1718910213467894216","attributes":[{"key":"openinference.span.kind","value":{"string_value":"CHAIN"}},{"key":"pop.request.id","value":{"string_value":"8E1625-B8D1-EA177F9FC69D"}}],"status":{"code":"STATUS_CODE_OK"}},{"trace_id":"5eae77fbab7bd7e41c","span_id":"0ab8a7c75","parent_span_id":"f2ebcf12b27","name":"chunking","kind":"SPAN_KIND_INTERNAL","start_time_unix_nano":"1718910213733013448","end_time_unix_nano":"1718910213733446902","attributes":[{"key":"openinference.span.kind","value":{"string_value":"CHAIN"}},{"key":"pop.request.id","value":{"string_value":"14D0D5-1675-BCA7-AF320E26C1A4"}}],"status":{"code":"STATUS_CODE_OK"}},{"trace_id":"25eae77fbab87bd7e41c","span_id":"2cb6c51c5fb2","parent_span_id":"f2ebcf12b27","name":"llm","kind":"SPAN_KIND_INTERNAL","start_time_unix_nano":"1718910214008467118","end_time_unix_nano":"1718910214849631714","attributes":[{"key":"llm.completions","value":{"array_value":{"values":[{"kvlist_value":{"values":[{"key":"message.content","value":{"string_value":"The term \\"pai-llm-trace\\" refersto a component or module within the project or codebase being worked on."}},{"key":"message.role","value":{"string_value":"assistant"}},{"key":"vector_index","value":{"int_value":"0"}}]}}]}}},{"key":"llm.invocation_parameters","value":{"string_value":"{\\"temperature\\": 0.1, \\"model\\": \\"gpt-3.5-turbo\\"}"}},{"key":"llm.model_name","value":{"string_value":"gpt-3.5-turbo"}},{"key":"llm.prompt_template.template","value":{"string_value":"system: You are an expert Q&A system that is trusted around the world.\\nAlways answer the query using the provided context information, and not prior knowledge.\\nSome rules to follow:\\n1. Never directly reference thegiven context in your answer.\\n2. Avoid statements like \'Based on the context, ...\' or \'The context information ...\' or anything along those lines.\\nuser: Context information is below.\\n---------------------\\n{context_str}\\n---------------------\\nGiven the context information and not prior knowledge, answer the query.\\nQuery: {query_str}\\nAnswer: \\nassistant: "}},{"key":"llm.prompt_template.variables","value":{"string_value":"{\\"context_str\\": \\"file_path: /mnt/disk1t/weidan.kong/work/llm_trace/client/makefile\\\\n\\\\n.PHONY: clean package test\\\\n\\\\nclean:\\\\n\\\\trm -rf build dist src/*.egg-info src/pai/llm_trace/__pycache__ src/pai/llm_trace/__pycache__\\\\n\\\\npackage: clean\\\\n\\\\tpip install build && python -m build\\\\n\\\\nrun:\\\\n\\\\tbash tools/run_test.sh\\", \\"query_str\\": \\"Question 1: what is pai-llm-trace.\\"}"}},{"key":"llm.prompts","value":{"array_value":{"values":[{"kvlist_value":{"values":[{"key":"message.content","value":{"string_value":"You are an expert Q&A system that is trusted around the world.\\nAlways answer the query using the provided context information, and not prior knowledge.\\nSome rules to follow:\\n1. Never directly reference the given context in your answer.\\n2. Avoid statements like \'Based on the context, ...\' or \'The context information ...\' or anything along those lines."}},{"key":"message.role","value":{"string_value":"system"}},{"key":"vector_index","value":{"int_value":"0"}}]}},{"kvlist_value":{"values":[{"key":"message.content","value":{"string_value":"Context information is below.\\n---------------------\\nfile_path: /mnt/disk1t/weidan.kong/work/llm_trace/client/makefile\\n\\n.PHONY: clean package test\\n\\nclean:\\n\\trm -rf build dist src/*.egg-info src/pai/llm_trace/__pycache__ src/pai/llm_trace/__pycache__\\n\\npackage: clean\\n\\tpip install build && python -m build\\n\\nrun:\\n\\tbash tools/run_test.sh\\n---------------------\\nGiven the context information and not prior knowledge, answer the query.\\nQuery: Question 1:what is pai-llm-trace.\\nAnswer: "}},{"key":"message.role","value":{"string_value":"user"}},{"key":"vector_index","value":{"int_value":"1"}}]}}]}}},{"key":"llm.token_count.completion","value":{"string_value":"26"}},{"key":"llm.token_count.prompt","value":{"string_value":"210"}},{"key":"llm.token_count.total","value":{"string_value":"236"}},{"key":"openinference.span.kind","value":{"string_value":"LLM"}},{"key":"output.value","value":{"string_value":"The term \\"pai-llm-trace\\" refers to a component or module within the project or codebase being worked on."}},{"key":"pop.request.id","value":{"string_value":"AA68F16D-A8B7-1BB0-1BD1E47B5"}}],"status":{"code":"STATUS_CODE_OK"}}]}]}]}'."\n" + ."\n" + .'open telemetry incompatible:'."\n" + .'[{"aliyunUid": "1773939154", "hostname": "qlc-ark2", "resources": {"deployment": {"environment": "cn-hangzhou"}, "service": {"app": {"name": "llm_trace_llamaindex_test"}, "name": "llm_trace_llamaindex_test_template", "owner": {"id": "177393915", "sub_id": "2305894433"}, "version": "0.0.1"}, "telemetry": {"sdk": {"language": "python", "name": "opentelemetry", "version": "1.25.0"}}}, "traceId": "444bae77fbab7bd7e41c", "spanId": "e0a0fbd3c6", "parentSpanId": "0", "kind": "SPAN_KIND_INTERNAL", "spanName": "query", "links": [], "events": [], "traceState": "", "startTime": 1718910212440262841, "endTime": 1718910215403326721, "duration": 2963063880, "attributes": {"input": {"value": "Question 1: what is pai-llm-trace."}, "openinference": {"span": {"kind": "CHAIN"}},"output": {"value": "The term \\\\"pai-llm-trace\\\\" refers to a component or module within the project or codebase being worked on."}, "pop": {"request": {"id": "1C70E14E-06F7D4F3"}}}, "statusCode": "STATUS_CODE_OK", "statusMessage": ""}, {"aliyunUid": "773939154", "hostname": "qlc-ark2", "resources": {"deployment": {"environment": "cn-hangzhou"}, "service": {"app": {"name": "llm_trace_llamaindex_test"}, "name": "llm_trace_llamaindex_test_template", "owner": {"id": "1773939", "sub_id": "2305819539"}, "version": "0.0.1"}, "telemetry": {"sdk": {"language": "python", "name": "opentelemetry", "version": "1.25.0"}}}, "traceId": "baeeae77fbab21687bd7e41c", "spanId": "ff08a7a6b85b", "parentSpanId": "e0a0fbd3c6", "kind": "SPAN_KIND_INTERNAL", "spanName": "retrieve", "links": [], "events": [], "traceState": "","startTime": 1718910212440884059, "endTime": 1718910213181800657, "duration": 740916598, "attributes": {"input": {"value": "Question 1: what is pai-llm-trace."}, "openinference": {"span": {"kind": "RETRIEVER"}}, "pop": {"request": {"id": "E8A1F8D9-D35A-1F9F2E6F612"}}, "retrieval": {"documents": [{"document": {"content": ".PHONY: clean package test\\\\n\\\\nclean:\\\\n\\\\trm -rf build dist src/*.egg-info src/pai/llm_trace/__pycache__ src/pai/llm_trace/__pycache__\\\\n\\\\npackage: clean\\\\n\\\\tpip install build && python -m build\\\\n\\\\nrun:\\\\n\\\\tbash tools/run_test.sh", "id": "c3bd0f7e-7--2fcc8657db", "metadata": "{\\\\"file_path\\\\": \\\\"/mnt/disk1t/weidan.kong/work/llm_trace/client/makefile\\\\", \\\\"file_name\\\\": \\\\"makefile\\\\", \\\\"file_size\\\\": 213, \\\\"creation_date\\\\": \\\\"2024-05-10\\\\", \\\\"last_modified_date\\\\": \\\\"2024-05-10\\\\"}", "score": 0.592955599044689}}]}}, "statusCode": "STATUS_CODE_OK", "statusMessage": ""}, {"aliyunUid": "1773939154062345", "hostname": "qlc-ark2", "resources": {"deployment": {"environment": "cn-hangzhou"}, "service": {"app": {"name": "llm_trace_llamaindex_test"}, "name": "llm_trace_llamaindex_test_template", "owner": {"id": "1793915", "sub_id": "58944336"}, "version": "0.0.1"}, "telemetry": {"sdk": {"language": "python", "name": "opentelemetry", "version": "1.25.0"}}}, "traceId": "444baebd7e41c", "spanId": "fc6f6acbc7", "parentSpanId": "f08a7a6b85b", "kind": "SPAN_KIND_INTERNAL", "spanName": "embedding", "links": [],"events": [], "traceState": "", "startTime": 1718910212441468561, "endTime": 1718910212617063167, "duration": 175594606, "attributes": {"embedding": {"embeddings": [{"embedding": {"text": "Question 1: what is pai-llm-trace.", "vector": "PAI LLM Trace system hid 1536 actual items"}}], "model_name": "text-embedding-ada-002"}, "openinference": {"span": {"kind": "EMBEDDING"}}, "pop": {"request": {"id": "56B9CCC3-CC84-80ED-53F60DC4A"}}}, "statusCode": "STATUS_CODE_OK", "statusMessage": ""}, {"aliyunUid": "1773939", "hostname": "qlc-ark2", "resources": {"deployment": {"environment": "cn-hangzhou"}, "service": {"app": {"name": "llm_trace_llamaindex_test"}, "name": "llm_trace_llamaindex_test_template", "owner": {"id": "17739391540", "sub_id": "23058944336"}, "version": "0.0.1"}, "telemetry": {"sdk": {"language": "python", "name": "opentelemetry", "version": "1.25.0"}}}, "traceId": "eae77fbab21687bd7e41c", "spanId": "f2ebcf12b27", "parentSpanId": "e0afbd3c6", "kind": "SPAN_KIND_INTERNAL", "spanName": "synthesize", "links": [], "events": [], "traceState": "", "startTime": 1718910213465461860, "endTime": 1718910215131655555, "duration": 1666193695, "attributes": {"input": {"value": "Question 1: what is pai-llm-trace."}, "openinference": {"span": {"kind": "CHAIN"}}, "output": {"value": "The term \\\\"pai-llm-trace\\\\" refers to a component or module within the project or codebase being worked on."}, "pop": {"request": {"id": "67D34C0D-1CD5-11B7-BEE2-0F90DCC"}}}, "statusCode": "STATUS_CODE_OK", "statusMessage": ""}, {"aliyunUid": "1773939", "hostname": "qlc-ark2", "resources": {"deployment": {"environment": "cn-hangzhou"}, "service": {"app": {"name": "llm_trace_llamaindex_test"}, "name": "llm_trace_llamaindex_test_template", "owner": {"id": "177393915", "sub_id": "23058944336"}, "version": "0.0.1"}, "telemetry": {"sdk": {"language": "python", "name": "opentelemetry", "version": "1.25.0"}}}, "traceId": "ae0ae77fbab87bd7e41c", "spanId": "d8f3fc6d47c", "parentSpanId": "f2ebcf12b27", "kind": "SPAN_KIND_INTERNAL", "spanName": "chunking", "links": [], "events": [], "traceState": "", "startTime": 1718910213467525240, "endTime": 1718910213467894216, "duration": 368976, "attributes": {"openinference": {"span": {"kind": "CHAIN"}}, "pop": {"request": {"id": "8EA31C-5-B8D1-EA177F9FC69D"}}}, "statusCode": "STATUS_CODE_OK", "statusMessage": ""}, {"aliyunUid": "1773939", "hostname": "qlc-ark2", "resources": {"deployment": {"environment": "cn-hangzhou"}, "service": {"app": {"name":"llm_trace_llamaindex_test"}, "name": "llm_trace_llamaindex_test_template", "owner": {"id": "17739391", "sub_id": "23058944"}, "version": "0.0.1"}, "telemetry": {"sdk": {"language": "python", "name":"opentelemetry", "version": "1.25.0"}}}, "traceId": "444babd7e41c", "spanId": "0aba7c75", "parentSpanId": "f2ebc6f12b27", "kind": "SPAN_KIND_INTERNAL", "spanName": "chunking", "links": [], "events": [], "traceState": "", "startTime": 1718910213733013448, "endTime": 1718910213733446902, "duration": 433454, "attributes": {"openinference": {"span": {"kind": "CHAIN"}}, "pop": {"request": {"id": "14D0D75-BCA7-AFE26C1A4"}}}, "statusCode": "STATUS_CODE_OK", "statusMessage": ""}, {"aliyunUid": "1773939", "hostname": "qlc-ark2", "resources": {"deployment": {"environment": "cn-hangzhou"}, "service": {"app": {"name": "llm_trace_llamaindex_test"}, "name": "llm_trace_llamaindex_test_template", "owner": {"id": "177393915", "sub_id": "2305894433"}, "version": "0.0.1"}, "telemetry": {"sdk": {"language": "python", "name": "opentelemetry", "version": "1.25.0"}}}, "traceId": "ae025eae77fbab7bd7e41c", "spanId": "2cb6c51c5fb2", "parentSpanId": "f2ebc6f12b27", "kind": "SPAN_KIND_INTERNAL", "spanName": "llm","links": [], "events": [], "traceState": "", "startTime": 1718910214008467118, "endTime": 1718910214849631714, "duration": 841164596, "attributes": {"llm": {"completions": [{"message": {"content": "The term \\\\"pai-llm-trace\\\\" refers to a component or module within the project or codebase being worked on.", "role": "assistant"}}], "invocation_parameters": "{\\\\"temperature\\\\": 0.1, \\\\"model\\\\": \\\\"gpt-3.5-turbo\\\\"}", "model_name": "gpt-3.5-turbo", "prompt_template": {"template": "system: You are an expert Q&A system that is trusted around the world.\\\\nAlways answer the query using the provided context information, and not prior knowledge.\\\\nSome rules to follow:\\\\n1. Never directly reference the given context in your answer.\\\\n2. Avoid statements like \\\'Based on the context, ...\\\' or \\\'The context information ...\\\' or anything along those lines.\\\\nuser: Contextinformation is below.\\\\n---------------------\\\\n{context_str}\\\\n---------------------\\\\nGiven the context information and not prior knowledge, answer the query.\\\\nQuery: {query_str}\\\\nAnswer: \\\\nassistant: ", "variables": "{\\\\"context_str\\\\": \\\\"file_path: /mnt/disk1t/weidan.kong/work/llm_trace/client/makefile\\\\\\\\n\\\\\\\\n.PHONY: clean package test\\\\\\\\n\\\\\\\\nclean:\\\\\\\\n\\\\\\\\trm -rf build dist src/*.egg-info src/pai/llm_trace/__pycache__src/pai/llm_trace/__pycache__\\\\\\\\n\\\\\\\\npackage: clean\\\\\\\\n\\\\\\\\tpip install build && python -m build\\\\\\\\n\\\\\\\\nrun:\\\\\\\\n\\\\\\\\tbash tools/run_test.sh\\\\", \\\\"query_str\\\\": \\\\"Question 1: what is pai-llm-trace.\\\\"}"}, "prompts": [{"message": {"content": "You are an expert Q&A system that is trusted around the world.\\\\nAlways answer the query using the provided context information, and not prior knowledge.\\\\nSome rules to follow:\\\\n1. Never directly reference the given context in your answer.\\\\n2. Avoid statements like \\\'Based on the context, ...\\\' or \\\'The context information ...\\\' or anything along those lines.", "role": "system"}}, {"message": {"content": "Context information is below.\\\\n---------------------\\\\nfile_path: /mnt/disk1t/weidan.kong/work/llm_trace/client/makefile\\\\n\\\\n.PHONY: clean package test\\\\n\\\\nclean:\\\\n\\\\trm -rf build dist src/*.egg-info src/pai/llm_trace/__pycache__ src/pai/llm_trace/__pycache__\\\\n\\\\npackage: clean\\\\n\\\\tpip install build && python -m build\\\\n\\\\nrun:\\\\n\\\\tbash tools/run_test.sh\\\\n---------------------\\\\nGiven the context information and notprior knowledge, answer the query.\\\\nQuery: Question 1: what is pai-llm-trace.\\\\nAnswer: ", "role": "user"}}], "token_count": {"completion": "26", "prompt": "210", "total": "236"}}, "openinference": {"span": {"kind": "LLM"}}, "output": {"value": "The term \\\\"pai-llm-trace\\\\" refers to a component or module within the project or codebase being worked on."}, "pop": {"request": {"id": "AA68F16D-A8B7-1BB0-1BD1E47B5"}}}, "statusCode": "STATUS_CODE_OK", "statusMessage": ""}]', + ], + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": 22,\\n \\"RequestId\\": \\"6A87228C-969A-1381-98CF-AE07AE630FA5\\",\\n \\"Code\\": \\"ExecutionFailure\\",\\n \\"Message\\": \\"failed to get trace data\\",\\n \\"Traces\\": [\\n \\"open telemetry compatible:\\\\n{\\\\\\"resource_spans\\\\\\":[{\\\\\\"resource\\\\\\":{\\\\\\"attributes\\\\\\":[{\\\\\\"key\\\\\\":\\\\\\"telemetry.sdk.language\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"python\\\\\\"}},{\\\\\\"key\\\\\\":\\\\\\"telemetry.sdk.name\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"opentelemetry\\\\\\"}},{\\\\\\"key\\\\\\":\\\\\\"telemetry.sdk.version\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"1.25.0\\\\\\"}},{\\\\\\"key\\\\\\":\\\\\\"service.name\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"llm_trace_llamaindex_test_template\\\\\\"}},{\\\\\\"key\\\\\\":\\\\\\"service.version\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"0.0.1\\\\\\"}},{\\\\\\"key\\\\\\":\\\\\\"deployment.environment\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"cn-hangzhou\\\\\\"}},{\\\\\\"key\\\\\\":\\\\\\"service.app.name\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"llm_trace_llamaindex_test\\\\\\"}},{\\\\\\"key\\\\\\":\\\\\\"service.owner.id\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"177393915\\\\\\"}},{\\\\\\"key\\\\\\":\\\\\\"service.owner.sub_id\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"230589443368\\\\\\"}}]},\\\\\\"scope_spans\\\\\\":[{\\\\\\"spans\\\\\\":[{\\\\\\"trace_id\\\\\\":\\\\\\"ae40025eae77fbab21687bd7e41c\\\\\\",\\\\\\"span_id\\\\\\":\\\\\\"e09710fbd3c6\\\\\\",\\\\\\"parent_span_id\\\\\\":\\\\\\"0\\\\\\",\\\\\\"name\\\\\\":\\\\\\"query\\\\\\",\\\\\\"kind\\\\\\":\\\\\\"SPAN_KIND_INTERNAL\\\\\\",\\\\\\"start_time_unix_nano\\\\\\":\\\\\\"1718910212440262841\\\\\\",\\\\\\"end_time_unix_nano\\\\\\":\\\\\\"1718910215403326721\\\\\\",\\\\\\"attributes\\\\\\":[{\\\\\\"key\\\\\\":\\\\\\"input.value\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"Question 1: what is pai-llm-trace.\\\\\\"}},{\\\\\\"key\\\\\\":\\\\\\"openinference.span.kind\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"CHAIN\\\\\\"}},{\\\\\\"key\\\\\\":\\\\\\"output.value\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"The term \\\\\\\\\\\\\\"pai-llm-trace\\\\\\\\\\\\\\" refers to a component or module within the project or codebase being worked on.\\\\\\"}},{\\\\\\"key\\\\\\":\\\\\\"pop.request.id\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"1C714E-057D-1216-835A-06F722E4F3\\\\\\"}}],\\\\\\"status\\\\\\":{\\\\\\"code\\\\\\":\\\\\\"STATUS_CODE_OK\\\\\\"}},{\\\\\\"trace_id\\\\\\":\\\\\\"444bae400277fbab21687bd7e41c\\\\\\",\\\\\\"span_id\\\\\\":\\\\\\"5686fa7a6b85b\\\\\\",\\\\\\"parent_span_id\\\\\\":\\\\\\"e0a5920fbd3c6\\\\\\",\\\\\\"name\\\\\\":\\\\\\"retrieve\\\\\\",\\\\\\"kind\\\\\\":\\\\\\"SPAN_KIND_INTERNAL\\\\\\",\\\\\\"start_time_unix_nano\\\\\\":\\\\\\"1718910212440884059\\\\\\",\\\\\\"end_time_unix_nano\\\\\\":\\\\\\"1718910213181800657\\\\\\",\\\\\\"attributes\\\\\\":[{\\\\\\"key\\\\\\":\\\\\\"input.value\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"Question 1: what is pai-llm-trace.\\\\\\"}},{\\\\\\"key\\\\\\":\\\\\\"openinference.span.kind\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"RETRIEVER\\\\\\"}},{\\\\\\"key\\\\\\":\\\\\\"pop.request.id\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"E8A1F8D9-D35A-1F9F-B724-5DA12E6F612\\\\\\"}},{\\\\\\"key\\\\\\":\\\\\\"retrieval.documents\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"array_value\\\\\\":{\\\\\\"values\\\\\\":[{\\\\\\"kvlist_value\\\\\\":{\\\\\\"values\\\\\\":[{\\\\\\"key\\\\\\":\\\\\\"document.content\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\".PHONY: clean package test\\\\\\\\n\\\\\\\\nclean:\\\\\\\\n\\\\\\\\trm -rf build dist src/*.egg-info src/pai/llm_trace/__pycache__ src/pai/llm_trace/__pycache__\\\\\\\\n\\\\\\\\npackage: clean\\\\\\\\n\\\\\\\\tpip install build && python -m build\\\\\\\\n\\\\\\\\nrun:\\\\\\\\n\\\\\\\\tbash tools/run_test.sh\\\\\\"}},{\\\\\\"key\\\\\\":\\\\\\"document.id\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"c3bd0f7e-2-42f7-964c-2fcc698657db\\\\\\"}},{\\\\\\"key\\\\\\":\\\\\\"document.metadata\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"{\\\\\\\\\\\\\\"file_path\\\\\\\\\\\\\\": \\\\\\\\\\\\\\"/mnt/disk1t/weidan.kong/work/llm_trace/client/makefile\\\\\\\\\\\\\\", \\\\\\\\\\\\\\"file_name\\\\\\\\\\\\\\": \\\\\\\\\\\\\\"makefile\\\\\\\\\\\\\\", \\\\\\\\\\\\\\"file_size\\\\\\\\\\\\\\": 213, \\\\\\\\\\\\\\"creation_date\\\\\\\\\\\\\\": \\\\\\\\\\\\\\"2024-05-10\\\\\\\\\\\\\\", \\\\\\\\\\\\\\"last_modified_date\\\\\\\\\\\\\\": \\\\\\\\\\\\\\"2024-05-10\\\\\\\\\\\\\\"}\\\\\\"}},{\\\\\\"key\\\\\\":\\\\\\"document.score\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"double_value\\\\\\":0.592955599044689}},{\\\\\\"key\\\\\\":\\\\\\"vector_index\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"int_value\\\\\\":\\\\\\"0\\\\\\"}}]}}]}}}],\\\\\\"status\\\\\\":{\\\\\\"code\\\\\\":\\\\\\"STATUS_CODE_OK\\\\\\"}},{\\\\\\"trace_id\\\\\\":\\\\\\"444bae4e77fbab21687bd7e41c\\\\\\",\\\\\\"span_id\\\\\\":\\\\\\"f2fc6f6acbc7\\\\\\",\\\\\\"parent_span_id\\\\\\":\\\\\\"f08a7a6b85b\\\\\\",\\\\\\"name\\\\\\":\\\\\\"embedding\\\\\\",\\\\\\"kind\\\\\\":\\\\\\"SPAN_KIND_INTERNAL\\\\\\",\\\\\\"start_time_unix_nano\\\\\\":\\\\\\"1718910212441468561\\\\\\",\\\\\\"end_time_unix_nano\\\\\\":\\\\\\"1718910212617063167\\\\\\",\\\\\\"attributes\\\\\\":[{\\\\\\"key\\\\\\":\\\\\\"embedding.embeddings\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"array_value\\\\\\":{\\\\\\"values\\\\\\":[{\\\\\\"kvlist_value\\\\\\":{\\\\\\"values\\\\\\":[{\\\\\\"key\\\\\\":\\\\\\"embedding.text\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"Question 1: what is pai-llm-trace.\\\\\\"}},{\\\\\\"key\\\\\\":\\\\\\"embedding.vector\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"PAI LLM Trace system hid 1536 actual items\\\\\\"}},{\\\\\\"key\\\\\\":\\\\\\"vector_index\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"int_value\\\\\\":\\\\\\"0\\\\\\"}}]}}]}}},{\\\\\\"key\\\\\\":\\\\\\"embedding.model_name\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"text-embedding-ada-002\\\\\\"}},{\\\\\\"key\\\\\\":\\\\\\"openinference.span.kind\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"EMBEDDING\\\\\\"}},{\\\\\\"key\\\\\\":\\\\\\"pop.request.id\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"56B9CCC3-CC84-0ED-53F60DC4A318\\\\\\"}}],\\\\\\"status\\\\\\":{\\\\\\"code\\\\\\":\\\\\\"STATUS_CODE_OK\\\\\\"}},{\\\\\\"trace_id\\\\\\":\\\\\\"ae25eae77fbab21687bd7e41c\\\\\\",\\\\\\"span_id\\\\\\":\\\\\\"f2ebc6f12b27\\\\\\",\\\\\\"parent_span_id\\\\\\":\\\\\\"e0a710fbd3c6\\\\\\",\\\\\\"name\\\\\\":\\\\\\"synthesize\\\\\\",\\\\\\"kind\\\\\\":\\\\\\"SPAN_KIND_INTERNAL\\\\\\",\\\\\\"start_time_unix_nano\\\\\\":\\\\\\"1718910213465461860\\\\\\",\\\\\\"end_time_unix_nano\\\\\\":\\\\\\"1718910215131655555\\\\\\",\\\\\\"attributes\\\\\\":[{\\\\\\"key\\\\\\":\\\\\\"input.value\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"Question 1: what is pai-llm-trace.\\\\\\"}},{\\\\\\"key\\\\\\":\\\\\\"openinference.span.kind\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"CHAIN\\\\\\"}},{\\\\\\"key\\\\\\":\\\\\\"output.value\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"The term \\\\\\\\\\\\\\"pai-llm-trace\\\\\\\\\\\\\\" refers to a component or module within the project or codebase being worked on.\\\\\\"}},{\\\\\\"key\\\\\\":\\\\\\"pop.request.id\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"67D34C0D-1CD5-11B7-BEE2-05649\\\\\\"}}],\\\\\\"status\\\\\\":{\\\\\\"code\\\\\\":\\\\\\"STATUS_CODE_OK\\\\\\"}},{\\\\\\"trace_id\\\\\\":\\\\\\"21687bd7e41c\\\\\\",\\\\\\"span_id\\\\\\":\\\\\\"d8f3fc7c\\\\\\",\\\\\\"parent_span_id\\\\\\":\\\\\\"f2ebc12b27\\\\\\",\\\\\\"name\\\\\\":\\\\\\"chunking\\\\\\",\\\\\\"kind\\\\\\":\\\\\\"SPAN_KIND_INTERNAL\\\\\\",\\\\\\"start_time_unix_nano\\\\\\":\\\\\\"1718910213467525240\\\\\\",\\\\\\"end_time_unix_nano\\\\\\":\\\\\\"1718910213467894216\\\\\\",\\\\\\"attributes\\\\\\":[{\\\\\\"key\\\\\\":\\\\\\"openinference.span.kind\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"CHAIN\\\\\\"}},{\\\\\\"key\\\\\\":\\\\\\"pop.request.id\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"8E1625-B8D1-EA177F9FC69D\\\\\\"}}],\\\\\\"status\\\\\\":{\\\\\\"code\\\\\\":\\\\\\"STATUS_CODE_OK\\\\\\"}},{\\\\\\"trace_id\\\\\\":\\\\\\"5eae77fbab7bd7e41c\\\\\\",\\\\\\"span_id\\\\\\":\\\\\\"0ab8a7c75\\\\\\",\\\\\\"parent_span_id\\\\\\":\\\\\\"f2ebcf12b27\\\\\\",\\\\\\"name\\\\\\":\\\\\\"chunking\\\\\\",\\\\\\"kind\\\\\\":\\\\\\"SPAN_KIND_INTERNAL\\\\\\",\\\\\\"start_time_unix_nano\\\\\\":\\\\\\"1718910213733013448\\\\\\",\\\\\\"end_time_unix_nano\\\\\\":\\\\\\"1718910213733446902\\\\\\",\\\\\\"attributes\\\\\\":[{\\\\\\"key\\\\\\":\\\\\\"openinference.span.kind\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"CHAIN\\\\\\"}},{\\\\\\"key\\\\\\":\\\\\\"pop.request.id\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"14D0D5-1675-BCA7-AF320E26C1A4\\\\\\"}}],\\\\\\"status\\\\\\":{\\\\\\"code\\\\\\":\\\\\\"STATUS_CODE_OK\\\\\\"}},{\\\\\\"trace_id\\\\\\":\\\\\\"25eae77fbab87bd7e41c\\\\\\",\\\\\\"span_id\\\\\\":\\\\\\"2cb6c51c5fb2\\\\\\",\\\\\\"parent_span_id\\\\\\":\\\\\\"f2ebcf12b27\\\\\\",\\\\\\"name\\\\\\":\\\\\\"llm\\\\\\",\\\\\\"kind\\\\\\":\\\\\\"SPAN_KIND_INTERNAL\\\\\\",\\\\\\"start_time_unix_nano\\\\\\":\\\\\\"1718910214008467118\\\\\\",\\\\\\"end_time_unix_nano\\\\\\":\\\\\\"1718910214849631714\\\\\\",\\\\\\"attributes\\\\\\":[{\\\\\\"key\\\\\\":\\\\\\"llm.completions\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"array_value\\\\\\":{\\\\\\"values\\\\\\":[{\\\\\\"kvlist_value\\\\\\":{\\\\\\"values\\\\\\":[{\\\\\\"key\\\\\\":\\\\\\"message.content\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"The term \\\\\\\\\\\\\\"pai-llm-trace\\\\\\\\\\\\\\" refersto a component or module within the project or codebase being worked on.\\\\\\"}},{\\\\\\"key\\\\\\":\\\\\\"message.role\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"assistant\\\\\\"}},{\\\\\\"key\\\\\\":\\\\\\"vector_index\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"int_value\\\\\\":\\\\\\"0\\\\\\"}}]}}]}}},{\\\\\\"key\\\\\\":\\\\\\"llm.invocation_parameters\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"{\\\\\\\\\\\\\\"temperature\\\\\\\\\\\\\\": 0.1, \\\\\\\\\\\\\\"model\\\\\\\\\\\\\\": \\\\\\\\\\\\\\"gpt-3.5-turbo\\\\\\\\\\\\\\"}\\\\\\"}},{\\\\\\"key\\\\\\":\\\\\\"llm.model_name\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"gpt-3.5-turbo\\\\\\"}},{\\\\\\"key\\\\\\":\\\\\\"llm.prompt_template.template\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"system: You are an expert Q&A system that is trusted around the world.\\\\\\\\nAlways answer the query using the provided context information, and not prior knowledge.\\\\\\\\nSome rules to follow:\\\\\\\\n1. Never directly reference thegiven context in your answer.\\\\\\\\n2. Avoid statements like \'Based on the context, ...\' or \'The context information ...\' or anything along those lines.\\\\\\\\nuser: Context information is below.\\\\\\\\n---------------------\\\\\\\\n{context_str}\\\\\\\\n---------------------\\\\\\\\nGiven the context information and not prior knowledge, answer the query.\\\\\\\\nQuery: {query_str}\\\\\\\\nAnswer: \\\\\\\\nassistant: \\\\\\"}},{\\\\\\"key\\\\\\":\\\\\\"llm.prompt_template.variables\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"{\\\\\\\\\\\\\\"context_str\\\\\\\\\\\\\\": \\\\\\\\\\\\\\"file_path: /mnt/disk1t/weidan.kong/work/llm_trace/client/makefile\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n.PHONY: clean package test\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\nclean:\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\trm -rf build dist src/*.egg-info src/pai/llm_trace/__pycache__ src/pai/llm_trace/__pycache__\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\npackage: clean\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\tpip install build && python -m build\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\nrun:\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\tbash tools/run_test.sh\\\\\\\\\\\\\\", \\\\\\\\\\\\\\"query_str\\\\\\\\\\\\\\": \\\\\\\\\\\\\\"Question 1: what is pai-llm-trace.\\\\\\\\\\\\\\"}\\\\\\"}},{\\\\\\"key\\\\\\":\\\\\\"llm.prompts\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"array_value\\\\\\":{\\\\\\"values\\\\\\":[{\\\\\\"kvlist_value\\\\\\":{\\\\\\"values\\\\\\":[{\\\\\\"key\\\\\\":\\\\\\"message.content\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"You are an expert Q&A system that is trusted around the world.\\\\\\\\nAlways answer the query using the provided context information, and not prior knowledge.\\\\\\\\nSome rules to follow:\\\\\\\\n1. Never directly reference the given context in your answer.\\\\\\\\n2. Avoid statements like \'Based on the context, ...\' or \'The context information ...\' or anything along those lines.\\\\\\"}},{\\\\\\"key\\\\\\":\\\\\\"message.role\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"system\\\\\\"}},{\\\\\\"key\\\\\\":\\\\\\"vector_index\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"int_value\\\\\\":\\\\\\"0\\\\\\"}}]}},{\\\\\\"kvlist_value\\\\\\":{\\\\\\"values\\\\\\":[{\\\\\\"key\\\\\\":\\\\\\"message.content\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"Context information is below.\\\\\\\\n---------------------\\\\\\\\nfile_path: /mnt/disk1t/weidan.kong/work/llm_trace/client/makefile\\\\\\\\n\\\\\\\\n.PHONY: clean package test\\\\\\\\n\\\\\\\\nclean:\\\\\\\\n\\\\\\\\trm -rf build dist src/*.egg-info src/pai/llm_trace/__pycache__ src/pai/llm_trace/__pycache__\\\\\\\\n\\\\\\\\npackage: clean\\\\\\\\n\\\\\\\\tpip install build && python -m build\\\\\\\\n\\\\\\\\nrun:\\\\\\\\n\\\\\\\\tbash tools/run_test.sh\\\\\\\\n---------------------\\\\\\\\nGiven the context information and not prior knowledge, answer the query.\\\\\\\\nQuery: Question 1:what is pai-llm-trace.\\\\\\\\nAnswer: \\\\\\"}},{\\\\\\"key\\\\\\":\\\\\\"message.role\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"user\\\\\\"}},{\\\\\\"key\\\\\\":\\\\\\"vector_index\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"int_value\\\\\\":\\\\\\"1\\\\\\"}}]}}]}}},{\\\\\\"key\\\\\\":\\\\\\"llm.token_count.completion\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"26\\\\\\"}},{\\\\\\"key\\\\\\":\\\\\\"llm.token_count.prompt\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"210\\\\\\"}},{\\\\\\"key\\\\\\":\\\\\\"llm.token_count.total\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"236\\\\\\"}},{\\\\\\"key\\\\\\":\\\\\\"openinference.span.kind\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"LLM\\\\\\"}},{\\\\\\"key\\\\\\":\\\\\\"output.value\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"The term \\\\\\\\\\\\\\"pai-llm-trace\\\\\\\\\\\\\\" refers to a component or module within the project or codebase being worked on.\\\\\\"}},{\\\\\\"key\\\\\\":\\\\\\"pop.request.id\\\\\\",\\\\\\"value\\\\\\":{\\\\\\"string_value\\\\\\":\\\\\\"AA68F16D-A8B7-1BB0-1BD1E47B5\\\\\\"}}],\\\\\\"status\\\\\\":{\\\\\\"code\\\\\\":\\\\\\"STATUS_CODE_OK\\\\\\"}}]}]}]}\\\\n\\\\nopen telemetry incompatible:\\\\n[{\\\\\\"aliyunUid\\\\\\": \\\\\\"1773939154\\\\\\", \\\\\\"hostname\\\\\\": \\\\\\"qlc-ark2\\\\\\", \\\\\\"resources\\\\\\": {\\\\\\"deployment\\\\\\": {\\\\\\"environment\\\\\\": \\\\\\"cn-hangzhou\\\\\\"}, \\\\\\"service\\\\\\": {\\\\\\"app\\\\\\": {\\\\\\"name\\\\\\": \\\\\\"llm_trace_llamaindex_test\\\\\\"}, \\\\\\"name\\\\\\": \\\\\\"llm_trace_llamaindex_test_template\\\\\\", \\\\\\"owner\\\\\\": {\\\\\\"id\\\\\\": \\\\\\"177393915\\\\\\", \\\\\\"sub_id\\\\\\": \\\\\\"2305894433\\\\\\"}, \\\\\\"version\\\\\\": \\\\\\"0.0.1\\\\\\"}, \\\\\\"telemetry\\\\\\": {\\\\\\"sdk\\\\\\": {\\\\\\"language\\\\\\": \\\\\\"python\\\\\\", \\\\\\"name\\\\\\": \\\\\\"opentelemetry\\\\\\", \\\\\\"version\\\\\\": \\\\\\"1.25.0\\\\\\"}}}, \\\\\\"traceId\\\\\\": \\\\\\"444bae77fbab7bd7e41c\\\\\\", \\\\\\"spanId\\\\\\": \\\\\\"e0a0fbd3c6\\\\\\", \\\\\\"parentSpanId\\\\\\": \\\\\\"0\\\\\\", \\\\\\"kind\\\\\\": \\\\\\"SPAN_KIND_INTERNAL\\\\\\", \\\\\\"spanName\\\\\\": \\\\\\"query\\\\\\", \\\\\\"links\\\\\\": [], \\\\\\"events\\\\\\": [], \\\\\\"traceState\\\\\\": \\\\\\"\\\\\\", \\\\\\"startTime\\\\\\": 1718910212440262841, \\\\\\"endTime\\\\\\": 1718910215403326721, \\\\\\"duration\\\\\\": 2963063880, \\\\\\"attributes\\\\\\": {\\\\\\"input\\\\\\": {\\\\\\"value\\\\\\": \\\\\\"Question 1: what is pai-llm-trace.\\\\\\"}, \\\\\\"openinference\\\\\\": {\\\\\\"span\\\\\\": {\\\\\\"kind\\\\\\": \\\\\\"CHAIN\\\\\\"}},\\\\\\"output\\\\\\": {\\\\\\"value\\\\\\": \\\\\\"The term \\\\\\\\\\\\\\\\\\\\\\"pai-llm-trace\\\\\\\\\\\\\\\\\\\\\\" refers to a component or module within the project or codebase being worked on.\\\\\\"}, \\\\\\"pop\\\\\\": {\\\\\\"request\\\\\\": {\\\\\\"id\\\\\\": \\\\\\"1C70E14E-06F7D4F3\\\\\\"}}}, \\\\\\"statusCode\\\\\\": \\\\\\"STATUS_CODE_OK\\\\\\", \\\\\\"statusMessage\\\\\\": \\\\\\"\\\\\\"}, {\\\\\\"aliyunUid\\\\\\": \\\\\\"773939154\\\\\\", \\\\\\"hostname\\\\\\": \\\\\\"qlc-ark2\\\\\\", \\\\\\"resources\\\\\\": {\\\\\\"deployment\\\\\\": {\\\\\\"environment\\\\\\": \\\\\\"cn-hangzhou\\\\\\"}, \\\\\\"service\\\\\\": {\\\\\\"app\\\\\\": {\\\\\\"name\\\\\\": \\\\\\"llm_trace_llamaindex_test\\\\\\"}, \\\\\\"name\\\\\\": \\\\\\"llm_trace_llamaindex_test_template\\\\\\", \\\\\\"owner\\\\\\": {\\\\\\"id\\\\\\": \\\\\\"1773939\\\\\\", \\\\\\"sub_id\\\\\\": \\\\\\"2305819539\\\\\\"}, \\\\\\"version\\\\\\": \\\\\\"0.0.1\\\\\\"}, \\\\\\"telemetry\\\\\\": {\\\\\\"sdk\\\\\\": {\\\\\\"language\\\\\\": \\\\\\"python\\\\\\", \\\\\\"name\\\\\\": \\\\\\"opentelemetry\\\\\\", \\\\\\"version\\\\\\": \\\\\\"1.25.0\\\\\\"}}}, \\\\\\"traceId\\\\\\": \\\\\\"baeeae77fbab21687bd7e41c\\\\\\", \\\\\\"spanId\\\\\\": \\\\\\"ff08a7a6b85b\\\\\\", \\\\\\"parentSpanId\\\\\\": \\\\\\"e0a0fbd3c6\\\\\\", \\\\\\"kind\\\\\\": \\\\\\"SPAN_KIND_INTERNAL\\\\\\", \\\\\\"spanName\\\\\\": \\\\\\"retrieve\\\\\\", \\\\\\"links\\\\\\": [], \\\\\\"events\\\\\\": [], \\\\\\"traceState\\\\\\": \\\\\\"\\\\\\",\\\\\\"startTime\\\\\\": 1718910212440884059, \\\\\\"endTime\\\\\\": 1718910213181800657, \\\\\\"duration\\\\\\": 740916598, \\\\\\"attributes\\\\\\": {\\\\\\"input\\\\\\": {\\\\\\"value\\\\\\": \\\\\\"Question 1: what is pai-llm-trace.\\\\\\"}, \\\\\\"openinference\\\\\\": {\\\\\\"span\\\\\\": {\\\\\\"kind\\\\\\": \\\\\\"RETRIEVER\\\\\\"}}, \\\\\\"pop\\\\\\": {\\\\\\"request\\\\\\": {\\\\\\"id\\\\\\": \\\\\\"E8A1F8D9-D35A-1F9F2E6F612\\\\\\"}}, \\\\\\"retrieval\\\\\\": {\\\\\\"documents\\\\\\": [{\\\\\\"document\\\\\\": {\\\\\\"content\\\\\\": \\\\\\".PHONY: clean package test\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\nclean:\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\trm -rf build dist src/*.egg-info src/pai/llm_trace/__pycache__ src/pai/llm_trace/__pycache__\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\npackage: clean\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\tpip install build && python -m build\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\nrun:\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\tbash tools/run_test.sh\\\\\\", \\\\\\"id\\\\\\": \\\\\\"c3bd0f7e-7--2fcc8657db\\\\\\", \\\\\\"metadata\\\\\\": \\\\\\"{\\\\\\\\\\\\\\\\\\\\\\"file_path\\\\\\\\\\\\\\\\\\\\\\": \\\\\\\\\\\\\\\\\\\\\\"/mnt/disk1t/weidan.kong/work/llm_trace/client/makefile\\\\\\\\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\\\\\\\\"file_name\\\\\\\\\\\\\\\\\\\\\\": \\\\\\\\\\\\\\\\\\\\\\"makefile\\\\\\\\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\\\\\\\\"file_size\\\\\\\\\\\\\\\\\\\\\\": 213, \\\\\\\\\\\\\\\\\\\\\\"creation_date\\\\\\\\\\\\\\\\\\\\\\": \\\\\\\\\\\\\\\\\\\\\\"2024-05-10\\\\\\\\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\\\\\\\\"last_modified_date\\\\\\\\\\\\\\\\\\\\\\": \\\\\\\\\\\\\\\\\\\\\\"2024-05-10\\\\\\\\\\\\\\\\\\\\\\"}\\\\\\", \\\\\\"score\\\\\\": 0.592955599044689}}]}}, \\\\\\"statusCode\\\\\\": \\\\\\"STATUS_CODE_OK\\\\\\", \\\\\\"statusMessage\\\\\\": \\\\\\"\\\\\\"}, {\\\\\\"aliyunUid\\\\\\": \\\\\\"1773939154062345\\\\\\", \\\\\\"hostname\\\\\\": \\\\\\"qlc-ark2\\\\\\", \\\\\\"resources\\\\\\": {\\\\\\"deployment\\\\\\": {\\\\\\"environment\\\\\\": \\\\\\"cn-hangzhou\\\\\\"}, \\\\\\"service\\\\\\": {\\\\\\"app\\\\\\": {\\\\\\"name\\\\\\": \\\\\\"llm_trace_llamaindex_test\\\\\\"}, \\\\\\"name\\\\\\": \\\\\\"llm_trace_llamaindex_test_template\\\\\\", \\\\\\"owner\\\\\\": {\\\\\\"id\\\\\\": \\\\\\"1793915\\\\\\", \\\\\\"sub_id\\\\\\": \\\\\\"58944336\\\\\\"}, \\\\\\"version\\\\\\": \\\\\\"0.0.1\\\\\\"}, \\\\\\"telemetry\\\\\\": {\\\\\\"sdk\\\\\\": {\\\\\\"language\\\\\\": \\\\\\"python\\\\\\", \\\\\\"name\\\\\\": \\\\\\"opentelemetry\\\\\\", \\\\\\"version\\\\\\": \\\\\\"1.25.0\\\\\\"}}}, \\\\\\"traceId\\\\\\": \\\\\\"444baebd7e41c\\\\\\", \\\\\\"spanId\\\\\\": \\\\\\"fc6f6acbc7\\\\\\", \\\\\\"parentSpanId\\\\\\": \\\\\\"f08a7a6b85b\\\\\\", \\\\\\"kind\\\\\\": \\\\\\"SPAN_KIND_INTERNAL\\\\\\", \\\\\\"spanName\\\\\\": \\\\\\"embedding\\\\\\", \\\\\\"links\\\\\\": [],\\\\\\"events\\\\\\": [], \\\\\\"traceState\\\\\\": \\\\\\"\\\\\\", \\\\\\"startTime\\\\\\": 1718910212441468561, \\\\\\"endTime\\\\\\": 1718910212617063167, \\\\\\"duration\\\\\\": 175594606, \\\\\\"attributes\\\\\\": {\\\\\\"embedding\\\\\\": {\\\\\\"embeddings\\\\\\": [{\\\\\\"embedding\\\\\\": {\\\\\\"text\\\\\\": \\\\\\"Question 1: what is pai-llm-trace.\\\\\\", \\\\\\"vector\\\\\\": \\\\\\"PAI LLM Trace system hid 1536 actual items\\\\\\"}}], \\\\\\"model_name\\\\\\": \\\\\\"text-embedding-ada-002\\\\\\"}, \\\\\\"openinference\\\\\\": {\\\\\\"span\\\\\\": {\\\\\\"kind\\\\\\": \\\\\\"EMBEDDING\\\\\\"}}, \\\\\\"pop\\\\\\": {\\\\\\"request\\\\\\": {\\\\\\"id\\\\\\": \\\\\\"56B9CCC3-CC84-80ED-53F60DC4A\\\\\\"}}}, \\\\\\"statusCode\\\\\\": \\\\\\"STATUS_CODE_OK\\\\\\", \\\\\\"statusMessage\\\\\\": \\\\\\"\\\\\\"}, {\\\\\\"aliyunUid\\\\\\": \\\\\\"1773939\\\\\\", \\\\\\"hostname\\\\\\": \\\\\\"qlc-ark2\\\\\\", \\\\\\"resources\\\\\\": {\\\\\\"deployment\\\\\\": {\\\\\\"environment\\\\\\": \\\\\\"cn-hangzhou\\\\\\"}, \\\\\\"service\\\\\\": {\\\\\\"app\\\\\\": {\\\\\\"name\\\\\\": \\\\\\"llm_trace_llamaindex_test\\\\\\"}, \\\\\\"name\\\\\\": \\\\\\"llm_trace_llamaindex_test_template\\\\\\", \\\\\\"owner\\\\\\": {\\\\\\"id\\\\\\": \\\\\\"17739391540\\\\\\", \\\\\\"sub_id\\\\\\": \\\\\\"23058944336\\\\\\"}, \\\\\\"version\\\\\\": \\\\\\"0.0.1\\\\\\"}, \\\\\\"telemetry\\\\\\": {\\\\\\"sdk\\\\\\": {\\\\\\"language\\\\\\": \\\\\\"python\\\\\\", \\\\\\"name\\\\\\": \\\\\\"opentelemetry\\\\\\", \\\\\\"version\\\\\\": \\\\\\"1.25.0\\\\\\"}}}, \\\\\\"traceId\\\\\\": \\\\\\"eae77fbab21687bd7e41c\\\\\\", \\\\\\"spanId\\\\\\": \\\\\\"f2ebcf12b27\\\\\\", \\\\\\"parentSpanId\\\\\\": \\\\\\"e0afbd3c6\\\\\\", \\\\\\"kind\\\\\\": \\\\\\"SPAN_KIND_INTERNAL\\\\\\", \\\\\\"spanName\\\\\\": \\\\\\"synthesize\\\\\\", \\\\\\"links\\\\\\": [], \\\\\\"events\\\\\\": [], \\\\\\"traceState\\\\\\": \\\\\\"\\\\\\", \\\\\\"startTime\\\\\\": 1718910213465461860, \\\\\\"endTime\\\\\\": 1718910215131655555, \\\\\\"duration\\\\\\": 1666193695, \\\\\\"attributes\\\\\\": {\\\\\\"input\\\\\\": {\\\\\\"value\\\\\\": \\\\\\"Question 1: what is pai-llm-trace.\\\\\\"}, \\\\\\"openinference\\\\\\": {\\\\\\"span\\\\\\": {\\\\\\"kind\\\\\\": \\\\\\"CHAIN\\\\\\"}}, \\\\\\"output\\\\\\": {\\\\\\"value\\\\\\": \\\\\\"The term \\\\\\\\\\\\\\\\\\\\\\"pai-llm-trace\\\\\\\\\\\\\\\\\\\\\\" refers to a component or module within the project or codebase being worked on.\\\\\\"}, \\\\\\"pop\\\\\\": {\\\\\\"request\\\\\\": {\\\\\\"id\\\\\\": \\\\\\"67D34C0D-1CD5-11B7-BEE2-0F90DCC\\\\\\"}}}, \\\\\\"statusCode\\\\\\": \\\\\\"STATUS_CODE_OK\\\\\\", \\\\\\"statusMessage\\\\\\": \\\\\\"\\\\\\"}, {\\\\\\"aliyunUid\\\\\\": \\\\\\"1773939\\\\\\", \\\\\\"hostname\\\\\\": \\\\\\"qlc-ark2\\\\\\", \\\\\\"resources\\\\\\": {\\\\\\"deployment\\\\\\": {\\\\\\"environment\\\\\\": \\\\\\"cn-hangzhou\\\\\\"}, \\\\\\"service\\\\\\": {\\\\\\"app\\\\\\": {\\\\\\"name\\\\\\": \\\\\\"llm_trace_llamaindex_test\\\\\\"}, \\\\\\"name\\\\\\": \\\\\\"llm_trace_llamaindex_test_template\\\\\\", \\\\\\"owner\\\\\\": {\\\\\\"id\\\\\\": \\\\\\"177393915\\\\\\", \\\\\\"sub_id\\\\\\": \\\\\\"23058944336\\\\\\"}, \\\\\\"version\\\\\\": \\\\\\"0.0.1\\\\\\"}, \\\\\\"telemetry\\\\\\": {\\\\\\"sdk\\\\\\": {\\\\\\"language\\\\\\": \\\\\\"python\\\\\\", \\\\\\"name\\\\\\": \\\\\\"opentelemetry\\\\\\", \\\\\\"version\\\\\\": \\\\\\"1.25.0\\\\\\"}}}, \\\\\\"traceId\\\\\\": \\\\\\"ae0ae77fbab87bd7e41c\\\\\\", \\\\\\"spanId\\\\\\": \\\\\\"d8f3fc6d47c\\\\\\", \\\\\\"parentSpanId\\\\\\": \\\\\\"f2ebcf12b27\\\\\\", \\\\\\"kind\\\\\\": \\\\\\"SPAN_KIND_INTERNAL\\\\\\", \\\\\\"spanName\\\\\\": \\\\\\"chunking\\\\\\", \\\\\\"links\\\\\\": [], \\\\\\"events\\\\\\": [], \\\\\\"traceState\\\\\\": \\\\\\"\\\\\\", \\\\\\"startTime\\\\\\": 1718910213467525240, \\\\\\"endTime\\\\\\": 1718910213467894216, \\\\\\"duration\\\\\\": 368976, \\\\\\"attributes\\\\\\": {\\\\\\"openinference\\\\\\": {\\\\\\"span\\\\\\": {\\\\\\"kind\\\\\\": \\\\\\"CHAIN\\\\\\"}}, \\\\\\"pop\\\\\\": {\\\\\\"request\\\\\\": {\\\\\\"id\\\\\\": \\\\\\"8EA31C-5-B8D1-EA177F9FC69D\\\\\\"}}}, \\\\\\"statusCode\\\\\\": \\\\\\"STATUS_CODE_OK\\\\\\", \\\\\\"statusMessage\\\\\\": \\\\\\"\\\\\\"}, {\\\\\\"aliyunUid\\\\\\": \\\\\\"1773939\\\\\\", \\\\\\"hostname\\\\\\": \\\\\\"qlc-ark2\\\\\\", \\\\\\"resources\\\\\\": {\\\\\\"deployment\\\\\\": {\\\\\\"environment\\\\\\": \\\\\\"cn-hangzhou\\\\\\"}, \\\\\\"service\\\\\\": {\\\\\\"app\\\\\\": {\\\\\\"name\\\\\\":\\\\\\"llm_trace_llamaindex_test\\\\\\"}, \\\\\\"name\\\\\\": \\\\\\"llm_trace_llamaindex_test_template\\\\\\", \\\\\\"owner\\\\\\": {\\\\\\"id\\\\\\": \\\\\\"17739391\\\\\\", \\\\\\"sub_id\\\\\\": \\\\\\"23058944\\\\\\"}, \\\\\\"version\\\\\\": \\\\\\"0.0.1\\\\\\"}, \\\\\\"telemetry\\\\\\": {\\\\\\"sdk\\\\\\": {\\\\\\"language\\\\\\": \\\\\\"python\\\\\\", \\\\\\"name\\\\\\":\\\\\\"opentelemetry\\\\\\", \\\\\\"version\\\\\\": \\\\\\"1.25.0\\\\\\"}}}, \\\\\\"traceId\\\\\\": \\\\\\"444babd7e41c\\\\\\", \\\\\\"spanId\\\\\\": \\\\\\"0aba7c75\\\\\\", \\\\\\"parentSpanId\\\\\\": \\\\\\"f2ebc6f12b27\\\\\\", \\\\\\"kind\\\\\\": \\\\\\"SPAN_KIND_INTERNAL\\\\\\", \\\\\\"spanName\\\\\\": \\\\\\"chunking\\\\\\", \\\\\\"links\\\\\\": [], \\\\\\"events\\\\\\": [], \\\\\\"traceState\\\\\\": \\\\\\"\\\\\\", \\\\\\"startTime\\\\\\": 1718910213733013448, \\\\\\"endTime\\\\\\": 1718910213733446902, \\\\\\"duration\\\\\\": 433454, \\\\\\"attributes\\\\\\": {\\\\\\"openinference\\\\\\": {\\\\\\"span\\\\\\": {\\\\\\"kind\\\\\\": \\\\\\"CHAIN\\\\\\"}}, \\\\\\"pop\\\\\\": {\\\\\\"request\\\\\\": {\\\\\\"id\\\\\\": \\\\\\"14D0D75-BCA7-AFE26C1A4\\\\\\"}}}, \\\\\\"statusCode\\\\\\": \\\\\\"STATUS_CODE_OK\\\\\\", \\\\\\"statusMessage\\\\\\": \\\\\\"\\\\\\"}, {\\\\\\"aliyunUid\\\\\\": \\\\\\"1773939\\\\\\", \\\\\\"hostname\\\\\\": \\\\\\"qlc-ark2\\\\\\", \\\\\\"resources\\\\\\": {\\\\\\"deployment\\\\\\": {\\\\\\"environment\\\\\\": \\\\\\"cn-hangzhou\\\\\\"}, \\\\\\"service\\\\\\": {\\\\\\"app\\\\\\": {\\\\\\"name\\\\\\": \\\\\\"llm_trace_llamaindex_test\\\\\\"}, \\\\\\"name\\\\\\": \\\\\\"llm_trace_llamaindex_test_template\\\\\\", \\\\\\"owner\\\\\\": {\\\\\\"id\\\\\\": \\\\\\"177393915\\\\\\", \\\\\\"sub_id\\\\\\": \\\\\\"2305894433\\\\\\"}, \\\\\\"version\\\\\\": \\\\\\"0.0.1\\\\\\"}, \\\\\\"telemetry\\\\\\": {\\\\\\"sdk\\\\\\": {\\\\\\"language\\\\\\": \\\\\\"python\\\\\\", \\\\\\"name\\\\\\": \\\\\\"opentelemetry\\\\\\", \\\\\\"version\\\\\\": \\\\\\"1.25.0\\\\\\"}}}, \\\\\\"traceId\\\\\\": \\\\\\"ae025eae77fbab7bd7e41c\\\\\\", \\\\\\"spanId\\\\\\": \\\\\\"2cb6c51c5fb2\\\\\\", \\\\\\"parentSpanId\\\\\\": \\\\\\"f2ebc6f12b27\\\\\\", \\\\\\"kind\\\\\\": \\\\\\"SPAN_KIND_INTERNAL\\\\\\", \\\\\\"spanName\\\\\\": \\\\\\"llm\\\\\\",\\\\\\"links\\\\\\": [], \\\\\\"events\\\\\\": [], \\\\\\"traceState\\\\\\": \\\\\\"\\\\\\", \\\\\\"startTime\\\\\\": 1718910214008467118, \\\\\\"endTime\\\\\\": 1718910214849631714, \\\\\\"duration\\\\\\": 841164596, \\\\\\"attributes\\\\\\": {\\\\\\"llm\\\\\\": {\\\\\\"completions\\\\\\": [{\\\\\\"message\\\\\\": {\\\\\\"content\\\\\\": \\\\\\"The term \\\\\\\\\\\\\\\\\\\\\\"pai-llm-trace\\\\\\\\\\\\\\\\\\\\\\" refers to a component or module within the project or codebase being worked on.\\\\\\", \\\\\\"role\\\\\\": \\\\\\"assistant\\\\\\"}}], \\\\\\"invocation_parameters\\\\\\": \\\\\\"{\\\\\\\\\\\\\\\\\\\\\\"temperature\\\\\\\\\\\\\\\\\\\\\\": 0.1, \\\\\\\\\\\\\\\\\\\\\\"model\\\\\\\\\\\\\\\\\\\\\\": \\\\\\\\\\\\\\\\\\\\\\"gpt-3.5-turbo\\\\\\\\\\\\\\\\\\\\\\"}\\\\\\", \\\\\\"model_name\\\\\\": \\\\\\"gpt-3.5-turbo\\\\\\", \\\\\\"prompt_template\\\\\\": {\\\\\\"template\\\\\\": \\\\\\"system: You are an expert Q&A system that is trusted around the world.\\\\\\\\\\\\\\\\nAlways answer the query using the provided context information, and not prior knowledge.\\\\\\\\\\\\\\\\nSome rules to follow:\\\\\\\\\\\\\\\\n1. Never directly reference the given context in your answer.\\\\\\\\\\\\\\\\n2. Avoid statements like \\\\\\\\\'Based on the context, ...\\\\\\\\\' or \\\\\\\\\'The context information ...\\\\\\\\\' or anything along those lines.\\\\\\\\\\\\\\\\nuser: Contextinformation is below.\\\\\\\\\\\\\\\\n---------------------\\\\\\\\\\\\\\\\n{context_str}\\\\\\\\\\\\\\\\n---------------------\\\\\\\\\\\\\\\\nGiven the context information and not prior knowledge, answer the query.\\\\\\\\\\\\\\\\nQuery: {query_str}\\\\\\\\\\\\\\\\nAnswer: \\\\\\\\\\\\\\\\nassistant: \\\\\\", \\\\\\"variables\\\\\\": \\\\\\"{\\\\\\\\\\\\\\\\\\\\\\"context_str\\\\\\\\\\\\\\\\\\\\\\": \\\\\\\\\\\\\\\\\\\\\\"file_path: /mnt/disk1t/weidan.kong/work/llm_trace/client/makefile\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n.PHONY: clean package test\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\nclean:\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\trm -rf build dist src/*.egg-info src/pai/llm_trace/__pycache__src/pai/llm_trace/__pycache__\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\npackage: clean\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\tpip install build && python -m build\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\nrun:\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\tbash tools/run_test.sh\\\\\\\\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\\\\\\\\"query_str\\\\\\\\\\\\\\\\\\\\\\": \\\\\\\\\\\\\\\\\\\\\\"Question 1: what is pai-llm-trace.\\\\\\\\\\\\\\\\\\\\\\"}\\\\\\"}, \\\\\\"prompts\\\\\\": [{\\\\\\"message\\\\\\": {\\\\\\"content\\\\\\": \\\\\\"You are an expert Q&A system that is trusted around the world.\\\\\\\\\\\\\\\\nAlways answer the query using the provided context information, and not prior knowledge.\\\\\\\\\\\\\\\\nSome rules to follow:\\\\\\\\\\\\\\\\n1. Never directly reference the given context in your answer.\\\\\\\\\\\\\\\\n2. Avoid statements like \\\\\\\\\'Based on the context, ...\\\\\\\\\' or \\\\\\\\\'The context information ...\\\\\\\\\' or anything along those lines.\\\\\\", \\\\\\"role\\\\\\": \\\\\\"system\\\\\\"}}, {\\\\\\"message\\\\\\": {\\\\\\"content\\\\\\": \\\\\\"Context information is below.\\\\\\\\\\\\\\\\n---------------------\\\\\\\\\\\\\\\\nfile_path: /mnt/disk1t/weidan.kong/work/llm_trace/client/makefile\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n.PHONY: clean package test\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\nclean:\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\trm -rf build dist src/*.egg-info src/pai/llm_trace/__pycache__ src/pai/llm_trace/__pycache__\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\npackage: clean\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\tpip install build && python -m build\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\nrun:\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\tbash tools/run_test.sh\\\\\\\\\\\\\\\\n---------------------\\\\\\\\\\\\\\\\nGiven the context information and notprior knowledge, answer the query.\\\\\\\\\\\\\\\\nQuery: Question 1: what is pai-llm-trace.\\\\\\\\\\\\\\\\nAnswer: \\\\\\", \\\\\\"role\\\\\\": \\\\\\"user\\\\\\"}}], \\\\\\"token_count\\\\\\": {\\\\\\"completion\\\\\\": \\\\\\"26\\\\\\", \\\\\\"prompt\\\\\\": \\\\\\"210\\\\\\", \\\\\\"total\\\\\\": \\\\\\"236\\\\\\"}}, \\\\\\"openinference\\\\\\": {\\\\\\"span\\\\\\": {\\\\\\"kind\\\\\\": \\\\\\"LLM\\\\\\"}}, \\\\\\"output\\\\\\": {\\\\\\"value\\\\\\": \\\\\\"The term \\\\\\\\\\\\\\\\\\\\\\"pai-llm-trace\\\\\\\\\\\\\\\\\\\\\\" refers to a component or module within the project or codebase being worked on.\\\\\\"}, \\\\\\"pop\\\\\\": {\\\\\\"request\\\\\\": {\\\\\\"id\\\\\\": \\\\\\"AA68F16D-A8B7-1BB0-1BD1E47B5\\\\\\"}}}, \\\\\\"statusCode\\\\\\": \\\\\\"STATUS_CODE_OK\\\\\\", \\\\\\"statusMessage\\\\\\": \\\\\\"\\\\\\"}]\\"\\n ]\\n}","type":"json"}]', + 'title' => '按照条件查找链路', + 'requestParamsDescription' => '所有参数之间是AND的关系。spanIds的多个id之间是OR的关系。traceIds的多个id之间是OR的关系。一个trace里任何一个span如果符合搜索条件,那么这个trace就符合搜索条件。'."\n" + ."\n" + .'如果不需要支持opentelemetry格式的数据,建议把OpentelemetryCompatible参数设置成False,可以简化返回的json string的结构。', + ], + 'CreateServiceIdentityRole' => [ + 'summary' => '创建PaiLLMTrace服务需要使用的服务关联角色。', + 'path' => '/api/v1/PAILLMTrace/ServiceIdentityRole', + 'methods' => [ + 'post', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'consumes' => [ + 'application/json', + ], + 'produces' => [ + 'application/json', + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'none', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '226578', + 'abilityTreeNodes' => [ + 'FEATURElearn0UHCCK', + ], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'Id of the request', + 'type' => 'string', + 'example' => '6A87228C-969A-1381-98CF-AE07AE630FA5', + ], + 'Code' => [ + 'title' => '调用失败后的错误码。', + 'description' => '调用失败后的错误码。', + 'type' => 'string', + 'example' => 'InvalidInputParams', + ], + 'Message' => [ + 'title' => '调用失败后的错误信息。', + 'description' => '调用失败后的错误信息。', + 'type' => 'string', + 'example' => 'User don\'t have permission to create SLR.', + ], + 'RoleName' => [ + 'description' => '操作服务关联角色名称,默认值:AliyunServiceRoleForPaiLLMTrace。', + 'type' => 'string', + 'example' => 'AliyunServiceRoleForPaiLLMTrace', + ], + 'RoleDetails' => [ + 'description' => '角色详细信息。', + 'type' => 'string', + 'example' => 'AliyunServiceRoleForPaiLLMTrace', + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"6A87228C-969A-1381-98CF-AE07AE630FA5\\",\\n \\"Code\\": \\"InvalidInputParams\\",\\n \\"Message\\": \\"User don\'t have permission to create SLR.\\",\\n \\"RoleName\\": \\"AliyunServiceRoleForPaiLLMTrace\\",\\n \\"RoleDetails\\": \\"AliyunServiceRoleForPaiLLMTrace\\"\\n}","type":"json"}]', + 'title' => '创建服务关联角色。', + ], + 'GetServiceIdentityRole' => [ + 'summary' => '获取服务关联角色相关信息。', + 'path' => '/api/v1/PAILLMTrace/ServiceIdentityRole', + 'methods' => [ + 'get', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'consumes' => [ + 'application/json', + ], + 'produces' => [ + 'application/json', + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'none', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '229846', + 'abilityTreeNodes' => [ + 'FEATURElearn0UHCCK', + ], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'Id of the request', + 'type' => 'string', + 'example' => '6A87228C-969A-1381-98CF-AE07AE630FA5', + ], + 'Code' => [ + 'description' => '内部错误码。只在响应出错时被设置。', + 'type' => 'string', + 'example' => 'EntityNotExist', + ], + 'Message' => [ + 'description' => '响应错误信息。只在响应出错时被设置。', + 'type' => 'string', + 'example' => 'Serivce role does not exit.', + ], + 'RoleDetail' => [ + 'description' => '角色详细信息。', + 'type' => 'string', + 'example' => 'AliyunServiceRoleForPaiLLMTrace', + ], + 'RoleName' => [ + 'description' => '操作服务关联角色名称,默认值:AliyunServiceRoleForPaiLLMTrace。', + 'type' => 'string', + 'example' => 'AliyunServiceRoleForPaiLLMTrace', + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"6A87228C-969A-1381-98CF-AE07AE630FA5\\",\\n \\"Code\\": \\"EntityNotExist\\",\\n \\"Message\\": \\"Serivce role does not exit.\\",\\n \\"RoleDetail\\": \\"AliyunServiceRoleForPaiLLMTrace\\",\\n \\"RoleName\\": \\"AliyunServiceRoleForPaiLLMTrace\\"\\n}","type":"json"}]', + 'title' => '获取服务关联角色。', + ], + 'GetXtraceToken' => [ + 'summary' => '获取Xtrace服务中所使用的token,以及上传trace数据所需要的endpoint。', + 'path' => '/api/v1/PAILLMTrace/XtraceToken', + 'methods' => [ + 'get', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'consumes' => [ + 'application/json', + ], + 'produces' => [ + 'application/json', + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'none', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '230427', + 'abilityTreeNodes' => [ + 'FEATURElearn0UHCCK', + ], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'Id of the request', + 'type' => 'string', + 'example' => '6A87228C-969A-1381-98CF-AE07AE630FA5', + ], + 'Code' => [ + 'description' => '内部错误码。只在响应出错时被设置。', + 'type' => 'string', + 'example' => 'InvalidInputParams', + ], + 'Message' => [ + 'description' => '响应错误信息。只在响应出错时被设置。', + 'type' => 'string', + 'example' => 'get_xtrace_token: failed, ERROR: NoPermission', + ], + 'Token' => [ + 'description' => 'arms链路上传使用的token', + 'type' => 'string', + 'example' => 'h1abcw7@5abcb_h1abcw7@5abc01', + ], + 'HttpEndpoint' => [ + 'description' => 'arms链路上传使用的endpoint.', + 'type' => 'string', + 'example' => 'http://tracing-analysis-dc-hz.aliyuncs.com/aaa@bbb@ccc/api/otlp/traces', + ], + 'HttpInternalEndpoint' => [ + 'description' => '阿里云内部使用的arms链路上传的endpoint', + 'type' => 'string', + 'example' => 'http://tracing-analysis-dc-hz-internal.aliyuncs.com/aaa@bbb@ccc/api/otlp/traces', + ], + 'GrpcEndpoint' => [ + 'description' => 'arms链路上传使用的grpc endpoint', + 'type' => 'string', + 'example' => 'http://tracing-analysis-dc-hz.aliyuncs.com:8090', + ], + 'GrpcInternalEndpoint' => [ + 'description' => '阿里云内部使用的arms链路上传的grpc endpoint', + 'type' => 'string', + 'example' => 'http://tracing-analysis-dc-hz-internal.aliyuncs.com:8090', + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"6A87228C-969A-1381-98CF-AE07AE630FA5\\",\\n \\"Code\\": \\"InvalidInputParams\\",\\n \\"Message\\": \\"get_xtrace_token: failed, ERROR: NoPermission\\",\\n \\"Token\\": \\"h1abcw7@5abcb_h1abcw7@5abc01\\",\\n \\"HttpEndpoint\\": \\"http://tracing-analysis-dc-hz.aliyuncs.com/aaa@bbb@ccc/api/otlp/traces\\",\\n \\"HttpInternalEndpoint\\": \\"http://tracing-analysis-dc-hz-internal.aliyuncs.com/aaa@bbb@ccc/api/otlp/traces\\",\\n \\"GrpcEndpoint\\": \\"http://tracing-analysis-dc-hz.aliyuncs.com:8090\\",\\n \\"GrpcInternalEndpoint\\": \\"http://tracing-analysis-dc-hz-internal.aliyuncs.com:8090\\"\\n}","type":"json"}]', + 'title' => '获取Xtrace服务的Token。', + ], + 'ListEvalResults' => [ + 'summary' => '获取链路数据评估结果列表。和EvaluateTrace API搭配使用。EvaluateTrace触发评估操作。ListEvalResults获取评估结果。', + 'path' => '/api/v1/PAILLMTrace/eval/results', + 'methods' => [ + 'get', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'consumes' => [ + 'application/json', + ], + 'produces' => [ + 'application/json', + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '237145', + 'abilityTreeNodes' => [ + 'FEATURElearn0UHCCK', + ], + ], + 'parameters' => [ + [ + 'name' => 'RecordIds', + 'in' => 'query', + 'style' => 'simple', + 'schema' => [ + 'description' => '链路数据id列表。', + 'type' => 'array', + 'items' => [ + 'description' => '链路数据id', + 'type' => 'string', + 'required' => false, + 'example' => '7423034a494ca17c16443ffd16336981', + ], + 'required' => false, + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => '分页查询时设置的页码。 起始值:1。默认值:1。', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => '分页大小,默认值10,最大值50。', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + ], + ], + [ + 'name' => 'EvaluationId', + 'in' => 'query', + 'schema' => [ + 'description' => '链路数据所属的评估任务的任务id。', + 'type' => 'string', + 'required' => false, + 'example' => '0bb05ae2a2dc11ef9757faaa2a1ec0c6', + ], + ], + [ + 'name' => 'Keyword', + 'in' => 'query', + 'schema' => [ + 'description' => '查询关键字,在评估输入数据里查询。', + 'type' => 'string', + 'required' => false, + 'example' => 'foo', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'POP请求id', + 'type' => 'string', + 'example' => '6A87228C-969A-1381-98CF-AE07AE630FA5', + ], + 'Code' => [ + 'description' => '内部错误码。只在响应出错时被设置。', + 'type' => 'string', + 'example' => 'ExecutionFailure', + ], + 'Message' => [ + 'description' => '响应错误信息。只在响应出错时被设置。', + 'type' => 'string', + 'example' => 'cannot get data back.', + ], + 'TotalCount' => [ + 'description' => '符合条件的评估结果的总数。', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '22', + ], + 'EvaluationResults' => [ + 'description' => '资源评估结果列表。', + 'type' => 'array', + 'items' => [ + 'description' => '一条链路记录的评估结果。', + 'type' => 'string', + 'example' => '[{'."\n" + .' "result": {'."\n" + .' "correctness": {'."\n" + .' "label": "正确",'."\n" + .' "score": 1,'."\n" + .' "reason": " \\n - 回顾问题:询问了26岁理工宅男的礼物建议。\\n - 回顾答案:提供了多种礼物建议,包括智能穿戴设备、最新款电子产品、编程相关书籍、DIY组装套件、桌游或拼图、科幻小说/漫画集、个性化定制礼品、体验式礼物。\\n - 回答内容详细且具体,提供了多种选择。\\n - 回答内容与问题相关,提供了多种礼物建议。\\n</think>\\n<answer>{\\"label\\":\\"正确\\", \\"reason\\":\\"提供了多种礼物建议,与问题相关,内容详细且具体。\\"}</answer></answer>",'."\n" + .' "name": "正确性"'."\n" + .' },'."\n" + .' "faithfulness": {'."\n" + .' "label": "事实",'."\n" + .' "score": 1,'."\n" + .' "reason": " \\n - 回顾查询内容,用户询问了适合26岁理工宅男的礼物建议。\\n - 回答内容提供了多个具体的礼物建议,包括智能穿戴设备、最新款电子产品、编程相关书籍、DIY组装套件、桌游或拼图、科幻小说/漫画集、个性化定制礼品、体验式礼物。\\n - 回答内容提供了多种可能的礼物选项,这些选项在逻辑上是合理的,且与用户的需求相关。\\n - 回答内容没有提供虚构的信息,因此可以认为是基于事实的。\\n</think>\\n<answer>{\\"label\\":\\"事实\\", \\"reason\\":\\"回答内容提供了多种可能的礼物选项,这些选项在逻辑上是合理的,且与用户的需求相关。\\"}</answer></answer>",'."\n" + .' "name": "真实性"'."\n" + .' }'."\n" + .' },'."\n" + .' "eval_app_type": "qa"'."\n" + .'}]', + ], + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"6A87228C-969A-1381-98CF-AE07AE630FA5\\",\\n \\"Code\\": \\"ExecutionFailure\\",\\n \\"Message\\": \\"cannot get data back.\\",\\n \\"TotalCount\\": 22,\\n \\"EvaluationResults\\": [\\n \\"[{\\\\n \\\\\\"result\\\\\\": {\\\\n \\\\\\"correctness\\\\\\": {\\\\n \\\\\\"label\\\\\\": \\\\\\"正确\\\\\\",\\\\n \\\\\\"score\\\\\\": 1,\\\\n \\\\\\"reason\\\\\\": \\\\\\" \\\\\\\\n - 回顾问题:询问了26岁理工宅男的礼物建议。\\\\\\\\n - 回顾答案:提供了多种礼物建议,包括智能穿戴设备、最新款电子产品、编程相关书籍、DIY组装套件、桌游或拼图、科幻小说/漫画集、个性化定制礼品、体验式礼物。\\\\\\\\n - 回答内容详细且具体,提供了多种选择。\\\\\\\\n - 回答内容与问题相关,提供了多种礼物建议。\\\\\\\\n</think>\\\\\\\\n<answer>{\\\\\\\\\\\\\\"label\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"正确\\\\\\\\\\\\\\", \\\\\\\\\\\\\\"reason\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"提供了多种礼物建议,与问题相关,内容详细且具体。\\\\\\\\\\\\\\"}</answer></answer>\\\\\\",\\\\n \\\\\\"name\\\\\\": \\\\\\"正确性\\\\\\"\\\\n },\\\\n \\\\\\"faithfulness\\\\\\": {\\\\n \\\\\\"label\\\\\\": \\\\\\"事实\\\\\\",\\\\n \\\\\\"score\\\\\\": 1,\\\\n \\\\\\"reason\\\\\\": \\\\\\" \\\\\\\\n - 回顾查询内容,用户询问了适合26岁理工宅男的礼物建议。\\\\\\\\n - 回答内容提供了多个具体的礼物建议,包括智能穿戴设备、最新款电子产品、编程相关书籍、DIY组装套件、桌游或拼图、科幻小说/漫画集、个性化定制礼品、体验式礼物。\\\\\\\\n - 回答内容提供了多种可能的礼物选项,这些选项在逻辑上是合理的,且与用户的需求相关。\\\\\\\\n - 回答内容没有提供虚构的信息,因此可以认为是基于事实的。\\\\\\\\n</think>\\\\\\\\n<answer>{\\\\\\\\\\\\\\"label\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"事实\\\\\\\\\\\\\\", \\\\\\\\\\\\\\"reason\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"回答内容提供了多种可能的礼物选项,这些选项在逻辑上是合理的,且与用户的需求相关。\\\\\\\\\\\\\\"}</answer></answer>\\\\\\",\\\\n \\\\\\"name\\\\\\": \\\\\\"真实性\\\\\\"\\\\n }\\\\n },\\\\n \\\\\\"eval_app_type\\\\\\": \\\\\\"qa\\\\\\"\\\\n}]\\"\\n ]\\n}","type":"json"}]', + 'title' => '获取链路数据评估结果', + ], + ], + 'endpoints' => [ + [ + 'regionId' => 'cn-hangzhou', + 'endpoint' => 'paillmtrace.cn-hangzhou.aliyuncs.com', + ], + [ + 'regionId' => 'cn-beijing', + 'endpoint' => 'paillmtrace.cn-beijing.aliyuncs.com', + ], + [ + 'regionId' => 'cn-shanghai', + 'endpoint' => 'paillmtrace.cn-shanghai.aliyuncs.com', + ], + [ + 'regionId' => 'cn-shenzhen', + 'endpoint' => 'paillmtrace.cn-shenzhen.aliyuncs.com', + ], + ], +]; |
