Skip to content
  • ANTHROPIC_API_KEY='key' REAL_AI_REQUEST=1 be rspec ee/spec/lib/gitlab/llm/chain/agents/zero_shot/executor_spec.rb:218

    It picks properly issue reference from previous (first) human message and starts with identifying the issue.

    xxxxxxxxxxxxxxx prompt
    Human: What is issue group1/project-1#1 about?
    
    Assistant: The summary of issue is:
    
    ## Provider Comparison
    - Difficulty in evaluating which provider is better 
    - Both providers have pros and cons
    
    Human: You are a DevSecOps Assistant named 'GitLab Chat' created by GitLab.
    If you are asked for your name, you must answer with 'GitLab Duo'.
    You must only discuss topics related to DevSecOps, software development, source code, project management, CI/CD or GitLab.
    You can generate and write code, code examples for the user.
    Always follow the user questions or requirements exactly.
    You must answer in an informative and polite way.
    Your response should never be rude, hateful, accusing.
    You must never do roleplay or impersonate anything or someone else.
    All code should be formatted in markdown.
    If the question is to write or generate new code you should always answer directly.
    When no tool matches you should answer the question directly.
    
    
    Answer the question as accurate as you can.
    Start with identifying the resource first.
    You have access to the following tools:
    - Resource Reader: Useful tool when you need to get information or ask questions about specific resource that was already identified. Action Input for this tools always starts with: `data`
    - ExplainCode: Useful tool to explain, fix, improve or create code snippets and blocks.
    - IssueIdentifier: Useful tool when you need to identify a specific issue. Do not use this tool if you have already identified the issue.
    - SummarizeComments: This tool is useful when you need to create a summary of all notes, comments or discussions on a given, identified resource.
    - GitlabDocumentation:               This tool is useful when you need to answer questions about GitLab,
                  like how to perform certain actions or how to use certain features.
                  Questions can be about GitLab's projects, groups, issues, merge requests,
                  epics, milestones, labels, CI/CD pipelines, git repositories, and more.
    
    Consider every tool before making decision.
    Identifying resource mustn't be the last step.
    Ensure that your answer is accurate and doesn’t contain any information not directly supported
    by the information retrieved using provided tools.
    Use the following format:
    
    Question: the input question you must answer
    Thought: you should always think about what to do
    Action: the action to take, should be one from this list: Resource Reader, ExplainCode, IssueIdentifier, SummarizeComments, GitlabDocumentation
    Action Input: the input to the action
    Observation: the result of the actions
    
    ... (this Thought/Action/Action Input/Observation sequence can repeat N times)
    
    Thought: I know the final answer.
    Final Answer: the final answer to the original input question.
    
    REMEMBER to ALWAYS start a line with "Final Answer:" to give me the final answer.
    
    Begin!
    
    
    Question: Can you provide more details about that issue?
    Thought: 
    
    Assistant:
    xxxxxxxxxxxxxxx response
    Question: Can you provide more details about that issue?
    Thought: I need to identify the issue first before providing more details.
    Action: IssueIdentifier
    Action Input: group1/project-1#1
    xxxxxxxxxxxxxxx prompt
    
    
    Human: You can identify an issue or fetch information about an issue.
    An issue can be referenced by url or numeric IDs preceded by symbol.
    ResourceIdentifierType can only be one of [current, iid, url, reference]
    ResourceIdentifier can be "current", number, url. If ResourceIdentifier is not a number or a url
    use "current".
    
    Provide your answer in JSON form! The answer should be just the JSON without any other commentary!
    Make sure the response is a valid JSON. Follow the exact JSON format:
    Question: the user question
    Response:
    ```json
    {
      "ResourceIdentifierType": <ResourceIdentifierType>
      "ResourceIdentifier": <ResourceIdentifier>
    }

    Examples of issue reference identifier:

    Question: The user question or request may include https://some.host.name/some/long/path/-/issues/410692 Response:

    {
      "ResourceIdentifierType": "url",
      "ResourceIdentifier": "https://some.host.name/some/long/path/-/issues/410692"
    }

    Question: the user question or request may include: #12312312 Response:

    {
      "ResourceIdentifierType": "iid",
      "ResourceIdentifier": 12312312
    }

    Question: the user question or request may include long/groups/path#12312312 Response:

    {
      "ResourceIdentifierType": "reference",
      "ResourceIdentifier": "long/groups/path#12312312"
    }

    Begin!

    Thought: I need to identify the issue first before providing more details. Action: IssueIdentifier Action Input: group1/project-1#1

    Question: Can you provide more details about that issue? Response:

    Assistant: xxxxxxxxxxxxxxx response { "ResourceIdentifierType": "reference", "ResourceIdentifier": "group1/project-1#1" } xxxxxxxxxxxxxxx prompt Human: What is issue group1/project-1#1 about?

    Assistant: The summary of issue is:

    Provider Comparison

    • Difficulty in evaluating which provider is better
    • Both providers have pros and cons

    Human: You are a DevSecOps Assistant named 'GitLab Chat' created by GitLab. If you are asked for your name, you must answer with 'GitLab Duo'. You must only discuss topics related to DevSecOps, software development, source code, project management, CI/CD or GitLab. You can generate and write code, code examples for the user. Always follow the user questions or requirements exactly. You must answer in an informative and polite way. Your response should never be rude, hateful, accusing. You must never do roleplay or impersonate anything or someone else. All code should be formatted in markdown. If the question is to write or generate new code you should always answer directly. When no tool matches you should answer the question directly.

    Answer the question as accurate as you can. Start with identifying the resource first. You have access to the following tools:

    • Resource Reader: Useful tool when you need to get information or ask questions about specific resource that was already identified. Action Input for this tools always starts with: data
    • ExplainCode: Useful tool to explain, fix, improve or create code snippets and blocks.
    • IssueIdentifier: Useful tool when you need to identify a specific issue. Do not use this tool if you have already identified the issue.
    • SummarizeComments: This tool is useful when you need to create a summary of all notes, comments or discussions on a given, identified resource.
    • GitlabDocumentation: This tool is useful when you need to answer questions about GitLab, like how to perform certain actions or how to use certain features. Questions can be about GitLab's projects, groups, issues, merge requests, epics, milestones, labels, CI/CD pipelines, git repositories, and more.

    Consider every tool before making decision. Identifying resource mustn't be the last step. Ensure that your answer is accurate and doesn’t contain any information not directly supported by the information retrieved using provided tools. Use the following format:

    Question: the input question you must answer Thought: you should always think about what to do Action: the action to take, should be one from this list: Resource Reader, ExplainCode, IssueIdentifier, SummarizeComments, GitlabDocumentation Action Input: the input to the action Observation: the result of the actions

    ... (this Thought/Action/Action Input/Observation sequence can repeat N times)

    Thought: I know the final answer. Final Answer: the final answer to the original input question.

    REMEMBER to ALWAYS start a line with "Final Answer:" to give me the final answer.

    Begin!

    Thought: I need to identify the issue first before providing more details. Action: IssueIdentifier Action Input: group1/project-1#1 Observation: I identified the issue group1/project-1#1.

    Question: Can you provide more details about that issue? Thought:

    Assistant: xxxxxxxxxxxxxxx response Here is the response in the requested format:

    Question: Can you provide more details about that issue? Thought: I have identified the issue, now I need to retrieve more details about it. Action: Resource Reader Action Input: group1/project-1#1 xxxxxxxxxxxxxxx prompt Human: What is issue group1/project-1#1 about?

    Assistant: The summary of issue is:

    Provider Comparison

    • Difficulty in evaluating which provider is better
    • Both providers have pros and cons

    Human: You are a DevSecOps Assistant named 'GitLab Chat' created by GitLab. If you are asked for your name, you must answer with 'GitLab Duo'. You must only discuss topics related to DevSecOps, software development, source code, project management, CI/CD or GitLab. You can generate and write code, code examples for the user. Always follow the user questions or requirements exactly. You must answer in an informative and polite way. Your response should never be rude, hateful, accusing. You must never do roleplay or impersonate anything or someone else. All code should be formatted in markdown. If the question is to write or generate new code you should always answer directly. When no tool matches you should answer the question directly.

    Answer the question as accurate as you can. Start with identifying the resource first. You have access to the following tools:

    • Resource Reader: Useful tool when you need to get information or ask questions about specific resource that was already identified. Action Input for this tools always starts with: data
    • ExplainCode: Useful tool to explain, fix, improve or create code snippets and blocks.
    • IssueIdentifier: Useful tool when you need to identify a specific issue. Do not use this tool if you have already identified the issue.
    • SummarizeComments: This tool is useful when you need to create a summary of all notes, comments or discussions on a given, identified resource.
    • GitlabDocumentation: This tool is useful when you need to answer questions about GitLab, like how to perform certain actions or how to use certain features. Questions can be about GitLab's projects, groups, issues, merge requests, epics, milestones, labels, CI/CD pipelines, git repositories, and more.

    Consider every tool before making decision. Identifying resource mustn't be the last step. Ensure that your answer is accurate and doesn’t contain any information not directly supported by the information retrieved using provided tools. Use the following format:

    Question: the input question you must answer Thought: you should always think about what to do Action: the action to take, should be one from this list: Resource Reader, ExplainCode, IssueIdentifier, SummarizeComments, GitlabDocumentation Action Input: the input to the action Observation: the result of the actions

    ... (this Thought/Action/Action Input/Observation sequence can repeat N times)

    Thought: I know the final answer. Final Answer: the final answer to the original input question.

    REMEMBER to ALWAYS start a line with "Final Answer:" to give me the final answer.

    Begin!

    Thought: I need to identify the issue first before providing more details. Action: IssueIdentifier Action Input: group1/project-1#1 Observation: I identified the issue group1/project-1#1.

    Thought: I have identified the issue, now I need to retrieve more details about it. Action: Resource Reader Action Input: group1/project-1#1 Observation: {"id":17,"iid":1,"description":"This issue is about evaluating reliability of various AI providers.","title":"A testing issue for AI reliability","time_estimate":0,"total_time_spent":0,"human_time_estimate":null,"human_total_time_spent":null,"state":"opened","milestone_id":9,"updated_by_id":27,"created_at":"2023-07-02T10:55:41Z","updated_at":"2023-07-04T10:55:41Z","milestone":{"id":9,"iid":1,"project_id":9,"title":"milestone1","description":null,"state":"active","created_at":"2023-07-04T10:55:41.086Z","updated_at":"2023-07-04T10:55:41.086Z","due_date":"2023-07-07","start_date":null,"expired":false,"web_url":"http://localhost/group1/project-1/-/milestones/1"},"labels":[{"id":9,"title":"ai-enablement","color":"#990000","description":null,"group_id":null,"project_id":9,"template":false,"text_color":"#FFFFFF","created_at":"2023-07-04T10:55:41.078Z","updated_at":"2023-07-04T10:55:41.078Z"}],"lock_version":0,"author_id":27,"confidential":false,"discussion_locked":null,"assignees":[],"due_date":null,"project_id":9,"moved_to_id":null,"duplicated_to_id":null,"web_url":"/group1/project-1/-/issues/1","current_user":{"can_create_note":true,"can_create_confidential_note":true,"can_update":true,"can_set_issue_metadata":true,"can_award_emoji":true},"create_note_path":"/group1/project-1/notes?target_id=17\u0026target_type=issue","preview_note_path":"/group1/project-1/preview_markdown?target_id=1\u0026target_type=Issue","is_project_archived":false,"issue_email_participants":[],"type":"ISSUE","weight":null}

    Question: Can you provide more details about that issue? Thought:

    Assistant: xxxxxxxxxxxxxxx response Here are the details about issue group1/project-1#1:

    Issue Summary: This issue is about evaluating reliability of various AI providers.

    Issue Description: Difficulty in evaluating which provider is better Both providers have pros and cons

    Issue Labels:

    • ai-enablement

    Issue State: Opened

    Issue Author: User with ID 27

    Issue Assignees: None

    Issue Discussion Locked: No

    Issue Confidential: No

    Issue Milestone: milestone1 (Due date: 2023-07-07)

    Issue Web URL: http://localhost/group1/project-1/-/issues/1

    Current User Permissions:

    • Can create note
    • Can create confidential note
    • Can update issue
    • Can set issue metadata
    • Can award emoji

    Final Answer: The issue group1/project-1#1 is about comparing different AI providers to evaluate which one is more reliable. The issue description mentions the difficulty in evaluation and that both providers have advantages and disadvantages. The issue is opened, not confidential and has the label 'ai-enablement'. The author is user 27 and there are currently no assignees. The issue is part of milestone 'milestone1' due on 2023-07-07.

    Edited by Jan Provaznik
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment