From ece10bd281164bd2e1693334f37a61c3207cc9be Mon Sep 17 00:00:00 2001 From: Mikyo King Date: Fri, 19 Jan 2024 11:15:58 -0700 Subject: [PATCH] fix: template variables should be JSON string --- trace/spec/semantic_conventions.md | 92 +++++++++++++++--------------- 1 file changed, 46 insertions(+), 46 deletions(-) diff --git a/trace/spec/semantic_conventions.md b/trace/spec/semantic_conventions.md index dcce93f..7f04e84 100644 --- a/trace/spec/semantic_conventions.md +++ b/trace/spec/semantic_conventions.md @@ -6,50 +6,50 @@ The **Semantic Conventions** define the keys and values which describe commonly The following attributes are reserved and MUST be supported by all OpenInference Tracing SDKs: -| Attribute | Type | Example | Description | -| -------------------------------------- | --------------- | -------------------------------------------------------------------------- | ---------------------------------------------------------------- | -| `exception.type` | String | `"NullPointerException"` | The type of exception that was thrown | -| `exception.message` | String | `"Null value encountered"` | Detailed message describing the exception | -| `exception.escaped` | Boolean | `true` | Indicator if the exception has escaped the span's scope | -| `exception.stacktrace` | String | `"at app.main(app.java:16)"` | The stack trace of the exception | -| `output.value` | String | `"Hello, World!"` | The output value of an operation | -| `output.mime_type` | String | `"text/plain"` or `"application/json"` | MIME type representing the format of `output.value` | -| `input.value` | String | `"{'query': 'What is the weather today?'}"` | The input value to an operation | -| `input.mime_type` | String | `"text/plain"` or `"application/json"` | MIME type representing the format of `input.value` | -| `embedding.embeddings` | List of objects | `[{"embeeding.vector": [...], "embedding.text": "hello"}]` | List of embedding objects including text and vector data | -| `embedding.model_name` | String | `"BERT-base"` | Name of the embedding model used | -| `embedding.text` | String | `"hello world"` | The text represented in the embedding | -| `embedding.vector` | List of floats | `[0.123, 0.456, ...]` | The embedding vector consisting of a list of floats | -| `llm.function_call` | JSON String | `"{function_name: 'add', args: [1, 2]}"` | Object recording details of a function call in models or APIs | -| `llm.invocation_parameters` | JSON string | `"{model_name: 'gpt-3', temperature: 0.7}"` | Parameters used during the invocation of an LLM or API | -| `llm.input_messages` | List of objects | `[{"message.role": "user", "message.content": "hello"}]` | List of messages sent to the LLM in a chat API request | -| `llm.output_messages` | List of objects | `[{"message.role": "user", "message.content": "hello"}]` | List of messages received from the LLM in a chat API request | -| `message.role` | String | `"user"` or `"system"` | Role of the entity in a message (e.g., user, system) | -| `message.function_call_name` | String | `"multiply"` or `"subtract"` | Function call function name | -| `message.function_call_arguments_json` | JSON String | `"{ 'x': 2 }"` | The arguments to the function call in JSON | -| `message.content` | String | `"What's the weather today?"` | The content of a message in a chat | -| `message.tool_calls` | List of objects | `[{"tool_call.function.name": "get_current_weather"}]` | List of tool calls (e.g. function calls) generated by the LLM | -| `tool_call.function.name` | String | `get_current_weather` | The name of the function being invoked by a tool call | -| `tool_call.function.arguments` | JSON string | `"{'city': 'London'}"` | The arguments for the function being invoked by a tool call | -| `llm.model_name` | String | `"gpt-3.5-turbo"` | The name of the language model being utilized | -| `llm.prompt_template.template` | String | `"Weather forecast for {city} on {date}"` | Template used to generate prompts as Python f-strings | -| `llm.prompt_template.variables` | List of strings | `["city", "date"]` | List of variables to be used in the prompt template | -| `llm.prompt_template.version` | String | `"v1.0"` | The version of the prompt template | -| `llm.token_count.prompt` | Integer | `5` | The number of tokens in the prompt | -| `llm.token_count.completion` | Integer | `15` | The number of tokens in the completion | -| `llm.token_count.total` | Integer | `20` | Total number of tokens, including prompt and completion | -| `tool.name` | String | `"WeatherAPI"` | The name of the tool being utilized | -| `tool.description` | String | `"An API to get weather data."` | Description of the tool's purpose and functionality | -| `tool.parameters` | JSON string | `"{ 'a': 'int' }"` | The parameters definition for invoking the tool | -| `retrieval.documents` | List of objects | `[{"document.id": "1", "document.score": 0.9, "document.content": "..."}]` | List of retrieved documents | -| `document.id` | String/Integer | `"1234"` or `1` | Unique identifier for a document | -| `document.score` | Float | `0.98` | Score representing the relevance of a document | -| `document.content` | String | `"This is a sample document content."` | The content of a retrieved document | -| `document.metadata` | Object | `{"author": "John Doe", "date": "2023-09-09"}` | Metadata associated with a document | -| `reranker.input_documents` | List of objects | `[{"document.id": "1", "document.score": 0.9, "document.content": "..."}]` | List of documents as input to the reranker | -| `reranker.output_documents` | List of objects | `[{"document.id": "1", "document.score": 0.9, "document.content": "..."}]` | List of documents outputted by the reranker | -| `reranker.query` | String | `"How to format timestamp?"` | Query parameter of the reranker | -| `reranker.model_name` | String | `"cross-encoder/ms-marco-MiniLM-L-12-v2"` | Model name of the reranker | -| `reranker.top_k` | Integer | 3 | Top K parameter of the reranker | +| Attribute | Type | Example | Description | +| -------------------------------------- | --------------- | -------------------------------------------------------------------------- | ------------------------------------------------------------- | +| `exception.type` | String | `"NullPointerException"` | The type of exception that was thrown | +| `exception.message` | String | `"Null value encountered"` | Detailed message describing the exception | +| `exception.escaped` | Boolean | `true` | Indicator if the exception has escaped the span's scope | +| `exception.stacktrace` | String | `"at app.main(app.java:16)"` | The stack trace of the exception | +| `output.value` | String | `"Hello, World!"` | The output value of an operation | +| `output.mime_type` | String | `"text/plain"` or `"application/json"` | MIME type representing the format of `output.value` | +| `input.value` | String | `"{'query': 'What is the weather today?'}"` | The input value to an operation | +| `input.mime_type` | String | `"text/plain"` or `"application/json"` | MIME type representing the format of `input.value` | +| `embedding.embeddings` | List of objects | `[{"embeeding.vector": [...], "embedding.text": "hello"}]` | List of embedding objects including text and vector data | +| `embedding.model_name` | String | `"BERT-base"` | Name of the embedding model used | +| `embedding.text` | String | `"hello world"` | The text represented in the embedding | +| `embedding.vector` | List of floats | `[0.123, 0.456, ...]` | The embedding vector consisting of a list of floats | +| `llm.function_call` | JSON String | `"{function_name: 'add', args: [1, 2]}"` | Object recording details of a function call in models or APIs | +| `llm.invocation_parameters` | JSON string | `"{model_name: 'gpt-3', temperature: 0.7}"` | Parameters used during the invocation of an LLM or API | +| `llm.input_messages` | List of objects | `[{"message.role": "user", "message.content": "hello"}]` | List of messages sent to the LLM in a chat API request | +| `llm.output_messages` | List of objects | `[{"message.role": "user", "message.content": "hello"}]` | List of messages received from the LLM in a chat API request | +| `message.role` | String | `"user"` or `"system"` | Role of the entity in a message (e.g., user, system) | +| `message.function_call_name` | String | `"multiply"` or `"subtract"` | Function call function name | +| `message.function_call_arguments_json` | JSON String | `"{ 'x': 2 }"` | The arguments to the function call in JSON | +| `message.content` | String | `"What's the weather today?"` | The content of a message in a chat | +| `message.tool_calls` | List of objects | `[{"tool_call.function.name": "get_current_weather"}]` | List of tool calls (e.g. function calls) generated by the LLM | +| `tool_call.function.name` | String | `get_current_weather` | The name of the function being invoked by a tool call | +| `tool_call.function.arguments` | JSON string | `"{'city': 'London'}"` | The arguments for the function being invoked by a tool call | +| `llm.model_name` | String | `"gpt-3.5-turbo"` | The name of the language model being utilized | +| `llm.prompt_template.template` | String | `"Weather forecast for {city} on {date}"` | Template used to generate prompts as Python f-strings | +| `llm.prompt_template.variables` | JSON String | `{ context: "", subject: "math" }` | JSON of key value pairs applied to the prompt template | +| `llm.prompt_template.version` | String | `"v1.0"` | The version of the prompt template | +| `llm.token_count.prompt` | Integer | `5` | The number of tokens in the prompt | +| `llm.token_count.completion` | Integer | `15` | The number of tokens in the completion | +| `llm.token_count.total` | Integer | `20` | Total number of tokens, including prompt and completion | +| `tool.name` | String | `"WeatherAPI"` | The name of the tool being utilized | +| `tool.description` | String | `"An API to get weather data."` | Description of the tool's purpose and functionality | +| `tool.parameters` | JSON string | `"{ 'a': 'int' }"` | The parameters definition for invoking the tool | +| `retrieval.documents` | List of objects | `[{"document.id": "1", "document.score": 0.9, "document.content": "..."}]` | List of retrieved documents | +| `document.id` | String/Integer | `"1234"` or `1` | Unique identifier for a document | +| `document.score` | Float | `0.98` | Score representing the relevance of a document | +| `document.content` | String | `"This is a sample document content."` | The content of a retrieved document | +| `document.metadata` | Object | `{"author": "John Doe", "date": "2023-09-09"}` | Metadata associated with a document | +| `reranker.input_documents` | List of objects | `[{"document.id": "1", "document.score": 0.9, "document.content": "..."}]` | List of documents as input to the reranker | +| `reranker.output_documents` | List of objects | `[{"document.id": "1", "document.score": 0.9, "document.content": "..."}]` | List of documents outputted by the reranker | +| `reranker.query` | String | `"How to format timestamp?"` | Query parameter of the reranker | +| `reranker.model_name` | String | `"cross-encoder/ms-marco-MiniLM-L-12-v2"` | Model name of the reranker | +| `reranker.top_k` | Integer | 3 | Top K parameter of the reranker | -Note: the `object` type refers to a set of key-value pairs also known as a `struct`, `mapping`, `dictionary`, etc. \ No newline at end of file +Note: the `object` type refers to a set of key-value pairs also known as a `struct`, `mapping`, `dictionary`, etc.