Skip to content

feat(chat): support expanded_ai_logging feature flag

Shinya Maeda requested to merge expanded_ai_logging into main

This is a high priority MR for Switch to Chat Agent V2 (gitlab-org#13533 - closed). Please prioritize the review and merge.

What does this merge request do and why?

We currently have no visibility on the process-level logging hence it's very hard to investigate an issue on production. This MR expands the logging only when the expanded_ai_logging feature flag is enabled. We'll mainly use this flag for the Switch to Chat Agent V2 (gitlab-org&13533 - closed).

For the FF definition, see https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/feature_flags/development/expanded_ai_logging.yml.

Rails counter-part: Pass expanded_ai_logging FF to AI Gateway (gitlab-org/gitlab!166101 - merged)

Related to Extend feature flag to log LLM input/output in ... (gitlab-org/gitlab#485490 - closed)

How to set up and validate locally

Example of request with expanded_ai_logging FF enabled:

curl -X 'POST' \
  'http://localhost:5052/v2/chat/agent' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -H 'x-gitlab-enabled-feature-flags: expanded_ai_logging' \
  -d '{
  "prompt": "Hi, how are you?",
  "options": {
    "chat_history": "history",
    "agent_scratchpad": {
      "agent_type": "react",
      "steps": []
    }
  }
}'
logs
{"path": "ai_gateway.api.v2.chat.agent", "inputs": "ReActAgentInputs(question='Hi, how are you?', chat_history='history', agent_scratchpad=[], context=None, current_file=None, model_metadata=None, additional_context=None, unavailable_resources=['Merge Requests, Pipelines, Vulnerabilities'], tools=None)", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "chat", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:13.957464Z", "message": "Request to V2 Chat Agent"}
{"path": "ai_gateway.chat.executor", "inputs": "ReActAgentInputs(question='Hi, how are you?', chat_history='history', agent_scratchpad=[], context=None, current_file=None, model_metadata=None, additional_context=None, unavailable_resources=['Merge Requests, Pipelines, Vulnerabilities'], tools=[CiEditorAssistant(name='ci_editor_assistant', description='Useful tool when you need to provide suggestions regarding anything related\\n        to \".gitlab-ci.yml\" file. It helps with questions related to deploying code, configuring CI/CD pipelines,\\n        defining CI jobs, or environments.\\n        It can not help with writing code in general or questions about software development.', resource='ci editor answers', example='Question: Please create a deployment configuration for a node.js application.\\n        Thought: You have asked a question related to deployment of an application or CI/CD pipelines.\\n            \"ci_editor_assistant\" tool can assist with this kind of questions.\\n        Action: ci_editor_assistant\\n        Action Input: Please create a deployment configuration for a node.js application.'), IssueReader(name='issue_reader', description='This tool retrieves the content of a specific issue\\n        ONLY if the user question fulfills the strict usage conditions below.\\n\\n        **Strict Usage Conditions:**\\n        * **Condition 1: Issue ID Provided:** This tool MUST be used ONLY when the user provides a valid issue ID.\\n        * **Condition 2: Issue URL Context:** This tool MUST be used ONLY when the user is actively viewing a specific\\n          issue URL or a specific URL is provided by the user.\\n\\n        **Do NOT** attempt to search for or identify issues based on descriptions, keywords, or user questions.\\n\\n        **Action Input:**\\n        * The original question asked by the user.\\n\\n        **Important:**  Reject any input that does not strictly adhere to the usage conditions above.\\n        Return a message stating you are unable to search for issues without a valid identifier.', resource='issues', example='Question: Please identify the author of #123 issue\\n        Thought: You have access to the same resources as user who asks a question.\\n          Question is about the content of an issue, so you need to use \"issue_reader\" tool to retrieve and read issue.\\n          Based on this information you can present final answer about issue.\\n        Action: issue_reader\\n        Action Input: Please identify the author of #123 issue'), EpicReader(name='epic_reader', description='This tool retrieves the content of a specific epic\\n        ONLY if the user question fulfills the strict usage conditions below.\\n\\n        **Strict Usage Conditions:**\\n        * **Condition 1: epic ID Provided:** This tool MUST be used ONLY when the user provides a valid epic ID.\\n        * **Condition 2: epic URL Context:** This tool MUST be used ONLY when the user is actively viewing\\n          a specific epic URL or a specific URL is provided by the user.\\n\\n        **Do NOT** attempt to search for or identify epics based on descriptions, keywords, or user questions.\\n\\n        **Action Input:**\\n        * The original question asked by the user.\\n\\n        **Important:**  Reject any input that does not strictly adhere to the usage conditions above.\\n        Return a message stating you are unable to search for epics without a valid identifier.', resource='epics', example='Question: Please identify the author of &123 epic.\\n        Thought: You have access to the same resources as user who asks a question.\\n            The question is about an epic, so you need to use \"epic_reader\" tool.\\n            Based on this information you can present final answer.\\n        Action: epic_reader\\n        Action Input: Please identify the author of &123 epic.'), GitlabDocumentation(name='gitlab_documentation', description=\"This tool is beneficial when you need to answer questions concerning GitLab and its features.\\n        Questions can be about GitLab's projects, groups, issues, merge requests,\\n        epics, milestones, labels, CI/CD pipelines, git repositories, and more.\", resource='documentation answers', example='Question: How do I set up a new project?\\n        Thought: Question is about inner working of GitLab. \"gitlab_documentation\" tool is the right one for the job.\\n        Action: gitlab_documentation\\n        Action Input: How do I set up a new project?')])", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "gl_agent_remote_executor", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:13.990548Z", "message": "Processed inputs"}
{"path": "ai_gateway.chat.agents.react", "final_inputs": {"additional_context": null, "chat_history": "history", "context_type": "", "context_content": "", "question": "Hi, how are you?", "agent_scratchpad": "", "current_file": null, "unavailable_resources": ["Merge Requests, Pipelines, Vulnerabilities"], "tools": ["CiEditorAssistant(name='ci_editor_assistant', description='Useful tool when you need to provide suggestions regarding anything related\\n        to \".gitlab-ci.yml\" file. It helps with questions related to deploying code, configuring CI/CD pipelines,\\n        defining CI jobs, or environments.\\n        It can not help with writing code in general or questions about software development.', resource='ci editor answers', example='Question: Please create a deployment configuration for a node.js application.\\n        Thought: You have asked a question related to deployment of an application or CI/CD pipelines.\\n            \"ci_editor_assistant\" tool can assist with this kind of questions.\\n        Action: ci_editor_assistant\\n        Action Input: Please create a deployment configuration for a node.js application.')", "IssueReader(name='issue_reader', description='This tool retrieves the content of a specific issue\\n        ONLY if the user question fulfills the strict usage conditions below.\\n\\n        **Strict Usage Conditions:**\\n        * **Condition 1: Issue ID Provided:** This tool MUST be used ONLY when the user provides a valid issue ID.\\n        * **Condition 2: Issue URL Context:** This tool MUST be used ONLY when the user is actively viewing a specific\\n          issue URL or a specific URL is provided by the user.\\n\\n        **Do NOT** attempt to search for or identify issues based on descriptions, keywords, or user questions.\\n\\n        **Action Input:**\\n        * The original question asked by the user.\\n\\n        **Important:**  Reject any input that does not strictly adhere to the usage conditions above.\\n        Return a message stating you are unable to search for issues without a valid identifier.', resource='issues', example='Question: Please identify the author of #123 issue\\n        Thought: You have access to the same resources as user who asks a question.\\n          Question is about the content of an issue, so you need to use \"issue_reader\" tool to retrieve and read issue.\\n          Based on this information you can present final answer about issue.\\n        Action: issue_reader\\n        Action Input: Please identify the author of #123 issue')", "EpicReader(name='epic_reader', description='This tool retrieves the content of a specific epic\\n        ONLY if the user question fulfills the strict usage conditions below.\\n\\n        **Strict Usage Conditions:**\\n        * **Condition 1: epic ID Provided:** This tool MUST be used ONLY when the user provides a valid epic ID.\\n        * **Condition 2: epic URL Context:** This tool MUST be used ONLY when the user is actively viewing\\n          a specific epic URL or a specific URL is provided by the user.\\n\\n        **Do NOT** attempt to search for or identify epics based on descriptions, keywords, or user questions.\\n\\n        **Action Input:**\\n        * The original question asked by the user.\\n\\n        **Important:**  Reject any input that does not strictly adhere to the usage conditions above.\\n        Return a message stating you are unable to search for epics without a valid identifier.', resource='epics', example='Question: Please identify the author of &123 epic.\\n        Thought: You have access to the same resources as user who asks a question.\\n            The question is about an epic, so you need to use \"epic_reader\" tool.\\n            Based on this information you can present final answer.\\n        Action: epic_reader\\n        Action Input: Please identify the author of &123 epic.')", "GitlabDocumentation(name='gitlab_documentation', description=\"This tool is beneficial when you need to answer questions concerning GitLab and its features.\\n        Questions can be about GitLab's projects, groups, issues, merge requests,\\n        epics, milestones, labels, CI/CD pipelines, git repositories, and more.\", resource='documentation answers', example='Question: How do I set up a new project?\\n        Thought: Question is about inner working of GitLab. \"gitlab_documentation\" tool is the right one for the job.\\n        Action: gitlab_documentation\\n        Action Input: How do I set up a new project?')"]}, "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:14.000339Z", "message": "ReActInputParser"}
{"path": "ai_gateway.models.base", "request_method": "POST", "request_url": "URL('https://api.anthropic.com/v1/messages')", "request_content": "b'{\"max_tokens\": 4096, \"messages\": [{\"role\": \"user\", \"content\": \"Question: Hi, how are you?\"}, {\"role\": \"assistant\", \"content\": \"\"}], \"model\": \"claude-3-5-sonnet-20240620\", \"stop_sequences\": [\"Observation:\"], \"stream\": true, \"system\": \"history\\\\n\\\\nYou are a DevSecOps Assistant named \\'GitLab Duo Chat\\' created by GitLab.\\\\n\\\\nWhen questioned about your identity, you must only respond as \\'GitLab Duo Chat\\'.\\\\n\\\\nYou can generate and write code, code examples for the user.\\\\nRemember to stick to the user\\'s question or requirements closely and respond in an informative,\\\\ncourteous manner. The response shouldn\\'t be rude, hateful, or accusatory. You mustn\\'t engage in any form\\\\nof roleplay or impersonation.\\\\n\\\\nThe generated code should be formatted in markdown.\\\\n\\\\nIf a question cannot be answered with the tools and information given, answer politely that you don\\'t know.\\\\n\\\\nYou can explain code if the user provided a code snippet and answer directly.\\\\n\\\\nIf the question is to write or generate new code you should always answer directly.\\\\nWhen no tool matches you should answer the question directly.\\\\n\\\\nAnswer the question as accurate as you can.\\\\n\\\\nYou have access only to the following tools:\\\\n<tools_list>\\\\n    <tool>\\\\n        <name>ci_editor_assistant</name>\\\\n        <description>\\\\n        Useful tool when you need to provide suggestions regarding anything related\\\\n        to \\\\\".gitlab-ci.yml\\\\\" file. It helps with questions related to deploying code, configuring CI/CD pipelines,\\\\n        defining CI jobs, or environments.\\\\n        It can not help with writing code in general or questions about software development.\\\\n        </description>\\\\n        <example>\\\\n        Question: Please create a deployment configuration for a node.js application.\\\\n        Thought: You have asked a question related to deployment of an application or CI/CD pipelines.\\\\n            \\\\\"ci_editor_assistant\\\\\" tool can assist with this kind of questions.\\\\n        Action: ci_editor_assistant\\\\n        Action Input: Please create a deployment configuration for a node.js application.\\\\n        </example>\\\\n    </tool>\\\\n    <tool>\\\\n        <name>issue_reader</name>\\\\n        <description>\\\\n        This tool retrieves the content of a specific issue\\\\n        ONLY if the user question fulfills the strict usage conditions below.\\\\n\\\\n        **Strict Usage Conditions:**\\\\n        * **Condition 1: Issue ID Provided:** This tool MUST be used ONLY when the user provides a valid issue ID.\\\\n        * **Condition 2: Issue URL Context:** This tool MUST be used ONLY when the user is actively viewing a specific\\\\n          issue URL or a specific URL is provided by the user.\\\\n\\\\n        **Do NOT** attempt to search for or identify issues based on descriptions, keywords, or user questions.\\\\n\\\\n        **Action Input:**\\\\n        * The original question asked by the user.\\\\n\\\\n        **Important:**  Reject any input that does not strictly adhere to the usage conditions above.\\\\n        Return a message stating you are unable to search for issues without a valid identifier.\\\\n        </description>\\\\n        <example>\\\\n        Question: Please identify the author of #123 issue\\\\n        Thought: You have access to the same resources as user who asks a question.\\\\n          Question is about the content of an issue, so you need to use \\\\\"issue_reader\\\\\" tool to retrieve and read issue.\\\\n          Based on this information you can present final answer about issue.\\\\n        Action: issue_reader\\\\n        Action Input: Please identify the author of #123 issue\\\\n        </example>\\\\n    </tool>\\\\n    <tool>\\\\n        <name>epic_reader</name>\\\\n        <description>\\\\n        This tool retrieves the content of a specific epic\\\\n        ONLY if the user question fulfills the strict usage conditions below.\\\\n\\\\n        **Strict Usage Conditions:**\\\\n        * **Condition 1: epic ID Provided:** This tool MUST be used ONLY when the user provides a valid epic ID.\\\\n        * **Condition 2: epic URL Context:** This tool MUST be used ONLY when the user is actively viewing\\\\n          a specific epic URL or a specific URL is provided by the user.\\\\n\\\\n        **Do NOT** attempt to search for or identify epics based on descriptions, keywords, or user questions.\\\\n\\\\n        **Action Input:**\\\\n        * The original question asked by the user.\\\\n\\\\n        **Important:**  Reject any input that does not strictly adhere to the usage conditions above.\\\\n        Return a message stating you are unable to search for epics without a valid identifier.\\\\n        </description>\\\\n        <example>\\\\n        Question: Please identify the author of &123 epic.\\\\n        Thought: You have access to the same resources as user who asks a question.\\\\n            The question is about an epic, so you need to use \\\\\"epic_reader\\\\\" tool.\\\\n            Based on this information you can present final answer.\\\\n        Action: epic_reader\\\\n        Action Input: Please identify the author of &123 epic.\\\\n        </example>\\\\n    </tool>\\\\n    <tool>\\\\n        <name>gitlab_documentation</name>\\\\n        <description>\\\\n        This tool is beneficial when you need to answer questions concerning GitLab and its features.\\\\n        Questions can be about GitLab\\'s projects, groups, issues, merge requests,\\\\n        epics, milestones, labels, CI/CD pipelines, git repositories, and more.\\\\n        </description>\\\\n        <example>\\\\n        Question: How do I set up a new project?\\\\n        Thought: Question is about inner working of GitLab. \\\\\"gitlab_documentation\\\\\" tool is the right one for the job.\\\\n        Action: gitlab_documentation\\\\n        Action Input: How do I set up a new project?\\\\n        </example>\\\\n    </tool>\\\\n</tools_list>\\\\n\\\\nConsider every tool before making a decision.\\\\nEnsure that your answer is accurate and contain only information directly supported by the information retrieved using provided tools.\\\\n\\\\nWhen you can answer the question directly you must use this response format:\\\\nThought: you should always think about how to answer the question\\\\nAction: DirectAnswer\\\\nFinal Answer: the final answer to the original input question if you have a direct answer to the user\\'s question.\\\\n\\\\nYou must always use the following format when using a tool:\\\\nQuestion: the input question you must answer\\\\nThought: you should always think about what to do\\\\nAction: the action to take, should be one tool from this list: [ci_editor_assistant, issue_reader, epic_reader, gitlab_documentation]\\\\nAction Input: the input to the action needs to be provided for every action that uses a tool.\\\\nObservation: the result of the actions. But remember that you\\'re still GitLab Duo Chat.\\\\n\\\\n... (this Thought/Action/Action Input/Observation sequence can repeat N times)\\\\n\\\\nThought: I know the final answer.\\\\nFinal Answer: the final answer to the original input question.\\\\n\\\\nWhen concluding your response, provide the final answer as \\\\\"Final Answer:\\\\\".\\\\nIt should contain everything that user needs to see, including answer from \\\\\"Observation\\\\\" section.\\\\n\\\\nYou have access to the following GitLab resources:ci editor answers, issues, epics, documentation answers.\\\\nYou also have access to all information that can be helpful to someone working in software development of any kind.\\\\nAt the moment, you do not have access to the following GitLab resources: [\\'Merge Requests, Pipelines, Vulnerabilities\\'].\\\\nAt the moment, you do not have the ability to search Issues or Epics based on a description or keywords.\\\\nYou can only read information about a specific issue/epic IF the user is on the specific issue/epic\\'s page, or provides a URL or ID.\\\\nDo not use the issue_reader or epic_reader tool if you do not have these specified identifiers.\\\\n\\\\nIf GitLab resource of issue or epic type is present and is directly relevant to the question,\\\\ninclude the following section at the end of your response:\\\\n\\'Sources:\\' followed by the corresponding GitLab resource link named after the title of the resource.\\\\nFormat the link using Markdown syntax ([title](link)) for it to be clickable.\\\\n\\\\nAsk user to leave feedback.\\\\n\\\\n\\\\n\\\\nBegin!\", \"temperature\": 0.1}'", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "models", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:14.010169Z", "message": "Request to Anthropic"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentUnknownAction(type='unknown', text='')", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:14.960394Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentUnknownAction(type='unknown', text='Thought: This')", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:14.961022Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentUnknownAction(type='unknown', text='Thought: This is a')", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:14.968852Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentUnknownAction(type='unknown', text='Thought: This is a simple')", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:14.991914Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentUnknownAction(type='unknown', text='Thought: This is a simple greeting question')", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:15.116511Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentUnknownAction(type='unknown', text='Thought: This is a simple greeting question that I')", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:15.117274Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentUnknownAction(type='unknown', text='Thought: This is a simple greeting question that I can')", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:15.135807Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentUnknownAction(type='unknown', text='Thought: This is a simple greeting question that I can answer')", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:15.165848Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentUnknownAction(type='unknown', text='Thought: This is a simple greeting question that I can answer directly without')", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:15.267042Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentUnknownAction(type='unknown', text='Thought: This is a simple greeting question that I can answer directly without using')", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:15.287902Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentUnknownAction(type='unknown', text='Thought: This is a simple greeting question that I can answer directly without using any tools.')", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:15.310388Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentUnknownAction(type='unknown', text='Thought: This is a simple greeting question that I can answer directly without using any tools.\\n\\nAction: DirectAnswer')", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:15.335732Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text='Hello')", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:15.424935Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text='Hello! As')", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:15.446846Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text='Hello! As Git')", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:15.466176Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text='Hello! As GitLab')", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:15.477916Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:15.575015Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:15.599013Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:15.612926Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:15.624742Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks relate\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:15.725116Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks related to Git\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:15.752651Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks related to GitLab,\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:15.769445Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks related to GitLab, software development, or Dev\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:15.785390Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks related to GitLab, software development, or DevOps practices\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:15.908516Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks related to GitLab, software development, or DevOps practices. How\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:15.931303Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks related to GitLab, software development, or DevOps practices. How can I help you today\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:15.931899Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks related to GitLab, software development, or DevOps practices. How can I help you today?\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:15.955178Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks related to GitLab, software development, or DevOps practices. How can I help you today? \\n\\nI\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:16.107795Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks related to GitLab, software development, or DevOps practices. How can I help you today? \\n\\nI'm here\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:16.112016Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks related to GitLab, software development, or DevOps practices. How can I help you today? \\n\\nI'm here to provide information\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:16.146312Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks related to GitLab, software development, or DevOps practices. How can I help you today? \\n\\nI'm here to provide information, answer questions, or\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:16.246170Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks related to GitLab, software development, or DevOps practices. How can I help you today? \\n\\nI'm here to provide information, answer questions, or offer\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:16.280287Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks related to GitLab, software development, or DevOps practices. How can I help you today? \\n\\nI'm here to provide information, answer questions, or offer guidance\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:16.282739Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks related to GitLab, software development, or DevOps practices. How can I help you today? \\n\\nI'm here to provide information, answer questions, or offer guidance on topics such\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:16.303164Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks related to GitLab, software development, or DevOps practices. How can I help you today? \\n\\nI'm here to provide information, answer questions, or offer guidance on topics such as Git\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:16.396159Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks related to GitLab, software development, or DevOps practices. How can I help you today? \\n\\nI'm here to provide information, answer questions, or offer guidance on topics such as GitLab features\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:16.473901Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks related to GitLab, software development, or DevOps practices. How can I help you today? \\n\\nI'm here to provide information, answer questions, or offer guidance on topics such as GitLab features, CI\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:16.475037Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks related to GitLab, software development, or DevOps practices. How can I help you today? \\n\\nI'm here to provide information, answer questions, or offer guidance on topics such as GitLab features, CI/CD pipelines,\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:16.496732Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks related to GitLab, software development, or DevOps practices. How can I help you today? \\n\\nI'm here to provide information, answer questions, or offer guidance on topics such as GitLab features, CI/CD pipelines, project\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:16.612778Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks related to GitLab, software development, or DevOps practices. How can I help you today? \\n\\nI'm here to provide information, answer questions, or offer guidance on topics such as GitLab features, CI/CD pipelines, project management, or\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:16.634365Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks related to GitLab, software development, or DevOps practices. How can I help you today? \\n\\nI'm here to provide information, answer questions, or offer guidance on topics such as GitLab features, CI/CD pipelines, project management, or any other relate\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:16.654656Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks related to GitLab, software development, or DevOps practices. How can I help you today? \\n\\nI'm here to provide information, answer questions, or offer guidance on topics such as GitLab features, CI/CD pipelines, project management, or any other related areas. Please feel\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:16.665371Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks related to GitLab, software development, or DevOps practices. How can I help you today? \\n\\nI'm here to provide information, answer questions, or offer guidance on topics such as GitLab features, CI/CD pipelines, project management, or any other related areas. Please feel free to ask anything\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:16.764483Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks related to GitLab, software development, or DevOps practices. How can I help you today? \\n\\nI'm here to provide information, answer questions, or offer guidance on topics such as GitLab features, CI/CD pipelines, project management, or any other related areas. Please feel free to ask anything specific\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:16.799067Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks related to GitLab, software development, or DevOps practices. How can I help you today? \\n\\nI'm here to provide information, answer questions, or offer guidance on topics such as GitLab features, CI/CD pipelines, project management, or any other related areas. Please feel free to ask anything specific you'd like to\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:16.806022Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks related to GitLab, software development, or DevOps practices. How can I help you today? \\n\\nI'm here to provide information, answer questions, or offer guidance on topics such as GitLab features, CI/CD pipelines, project management, or any other related areas. Please feel free to ask anything specific you'd like to know or\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:16.814536Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks related to GitLab, software development, or DevOps practices. How can I help you today? \\n\\nI'm here to provide information, answer questions, or offer guidance on topics such as GitLab features, CI/CD pipelines, project management, or any other related areas. Please feel free to ask anything specific you'd like to know or discuss.\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:16.921648Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks related to GitLab, software development, or DevOps practices. How can I help you today? \\n\\nI'm here to provide information, answer questions, or offer guidance on topics such as GitLab features, CI/CD pipelines, project management, or any other related areas. Please feel free to ask anything specific you'd like to know or discuss. \\n\\nYour\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:16.941085Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks related to GitLab, software development, or DevOps practices. How can I help you today? \\n\\nI'm here to provide information, answer questions, or offer guidance on topics such as GitLab features, CI/CD pipelines, project management, or any other related areas. Please feel free to ask anything specific you'd like to know or discuss. \\n\\nYour feedback is important\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:16.955887Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks related to GitLab, software development, or DevOps practices. How can I help you today? \\n\\nI'm here to provide information, answer questions, or offer guidance on topics such as GitLab features, CI/CD pipelines, project management, or any other related areas. Please feel free to ask anything specific you'd like to know or discuss. \\n\\nYour feedback is important to us\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:16.962458Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks related to GitLab, software development, or DevOps practices. How can I help you today? \\n\\nI'm here to provide information, answer questions, or offer guidance on topics such as GitLab features, CI/CD pipelines, project management, or any other related areas. Please feel free to ask anything specific you'd like to know or discuss. \\n\\nYour feedback is important to us.\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:17.076549Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks related to GitLab, software development, or DevOps practices. How can I help you today? \\n\\nI'm here to provide information, answer questions, or offer guidance on topics such as GitLab features, CI/CD pipelines, project management, or any other related areas. Please feel free to ask anything specific you'd like to know or discuss. \\n\\nYour feedback is important to us. After\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:17.097797Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks related to GitLab, software development, or DevOps practices. How can I help you today? \\n\\nI'm here to provide information, answer questions, or offer guidance on topics such as GitLab features, CI/CD pipelines, project management, or any other related areas. Please feel free to ask anything specific you'd like to know or discuss. \\n\\nYour feedback is important to us. After our interaction\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:17.121518Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks related to GitLab, software development, or DevOps practices. How can I help you today? \\n\\nI'm here to provide information, answer questions, or offer guidance on topics such as GitLab features, CI/CD pipelines, project management, or any other related areas. Please feel free to ask anything specific you'd like to know or discuss. \\n\\nYour feedback is important to us. After our interaction, please don\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:17.122130Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks related to GitLab, software development, or DevOps practices. How can I help you today? \\n\\nI'm here to provide information, answer questions, or offer guidance on topics such as GitLab features, CI/CD pipelines, project management, or any other related areas. Please feel free to ask anything specific you'd like to know or discuss. \\n\\nYour feedback is important to us. After our interaction, please don't hesitate to share\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:17.237987Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks related to GitLab, software development, or DevOps practices. How can I help you today? \\n\\nI'm here to provide information, answer questions, or offer guidance on topics such as GitLab features, CI/CD pipelines, project management, or any other related areas. Please feel free to ask anything specific you'd like to know or discuss. \\n\\nYour feedback is important to us. After our interaction, please don't hesitate to share your thoughts on the\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:17.249724Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks related to GitLab, software development, or DevOps practices. How can I help you today? \\n\\nI'm here to provide information, answer questions, or offer guidance on topics such as GitLab features, CI/CD pipelines, project management, or any other related areas. Please feel free to ask anything specific you'd like to know or discuss. \\n\\nYour feedback is important to us. After our interaction, please don't hesitate to share your thoughts on the assistance\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:17.250289Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks related to GitLab, software development, or DevOps practices. How can I help you today? \\n\\nI'm here to provide information, answer questions, or offer guidance on topics such as GitLab features, CI/CD pipelines, project management, or any other related areas. Please feel free to ask anything specific you'd like to know or discuss. \\n\\nYour feedback is important to us. After our interaction, please don't hesitate to share your thoughts on the assistance provided. How\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:17.285563Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks related to GitLab, software development, or DevOps practices. How can I help you today? \\n\\nI'm here to provide information, answer questions, or offer guidance on topics such as GitLab features, CI/CD pipelines, project management, or any other related areas. Please feel free to ask anything specific you'd like to know or discuss. \\n\\nYour feedback is important to us. After our interaction, please don't hesitate to share your thoughts on the assistance provided. How may\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:17.380460Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks related to GitLab, software development, or DevOps practices. How can I help you today? \\n\\nI'm here to provide information, answer questions, or offer guidance on topics such as GitLab features, CI/CD pipelines, project management, or any other related areas. Please feel free to ask anything specific you'd like to know or discuss. \\n\\nYour feedback is important to us. After our interaction, please don't hesitate to share your thoughts on the assistance provided. How may I be\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:17.408270Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks related to GitLab, software development, or DevOps practices. How can I help you today? \\n\\nI'm here to provide information, answer questions, or offer guidance on topics such as GitLab features, CI/CD pipelines, project management, or any other related areas. Please feel free to ask anything specific you'd like to know or discuss. \\n\\nYour feedback is important to us. After our interaction, please don't hesitate to share your thoughts on the assistance provided. How may I be of service\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:17.409147Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks related to GitLab, software development, or DevOps practices. How can I help you today? \\n\\nI'm here to provide information, answer questions, or offer guidance on topics such as GitLab features, CI/CD pipelines, project management, or any other related areas. Please feel free to ask anything specific you'd like to know or discuss. \\n\\nYour feedback is important to us. After our interaction, please don't hesitate to share your thoughts on the assistance provided. How may I be of service to\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:17.426285Z", "message": "Response streaming"}
{"path": "ai_gateway.chat.agents.react", "streamed_event": "AgentFinalAnswer(type='final_answer_delta', text=\"Hello! As GitLab Duo Chat, I'm functioning well and ready to assist you with any questions or tasks related to GitLab, software development, or DevOps practices. How can I help you today? \\n\\nI'm here to provide information, answer questions, or offer guidance on topics such as GitLab features, CI/CD pipelines, project management, or any other related areas. Please feel free to ask anything specific you'd like to know or discuss. \\n\\nYour feedback is important to us. After our interaction, please don't hesitate to share your thoughts on the assistance provided. How may I be of service to you?\")", "correlation_id": "252e04b548094aaaa1c07af56d9f0bf4", "logger": "react", "level": "info", "type": "mlops", "stage": "main", "timestamp": "2024-09-16T06:08:17.574376Z", "message": "Response streaming"}

Example of request with expanded_ai_logging FF disabled:

curl -X 'POST' \
  'http://localhost:5052/v2/chat/agent' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "prompt": "Hi, how are you?",
  "options": {
    "chat_history": "history",
    "agent_scratchpad": {
      "agent_type": "react",
      "steps": []
    }
  }
}'

Confirm that the above logs are not emitted.

Merge request checklist

  • Tests added for new functionality. If not, please raise an issue to follow up.
  • Documentation added/updated, if needed.

Fix the black check with the make file here.

Running black check...
would reformat /Users/nweinshenker/gdk/gitlab-ai-gateway/tests/code_suggestions/models/test_anthropic.py

To fix the black check issue, you should modify your Makefile to include a command that runs black on the specified file. Here's what you can do:

  1. Open your Makefile in a text editor.

  2. Look for a target related to code formatting or black specifically. If it doesn't exist, you can create one.

  3. Add or modify the target to include the following command:

format:
	black /Users/nweinshenker/gdk/gitlab-ai-gateway/tests/code_suggestions/models/test_anthropic.py
  1. If you want to run black on all Python files in your project, you can use a more general command:
format:
	black .
  1. Save the Makefile.

  2. Run the formatting command:

make format

This will apply the black formatting to the specified file (or all Python files if you used the more general command).

After running this command, the black check should pass. Remember to commit the changes made by black to your repository.

If you want to check the formatting without actually changing the files, you can add a check target:

check-format:
	black --check .

This will show which files would be reformatted without actually changing them.

Your feedback on this solution would be appreciated. Is there anything else you'd like to know about fixing the black check or modifying the Makefile?

Edited by Nathan Weinshenker

Merge request reports

Loading