Skip to content

fix: function calls#556

Merged
jpvajda merged 1 commit intomainfrom
fix/agent-function-call
Jul 21, 2025
Merged

fix: function calls#556
jpvajda merged 1 commit intomainfrom
fix/agent-function-call

Conversation

@jpvajda
Copy link
Contributor

@jpvajda jpvajda commented Jul 15, 2025

Fixes #528

TL;DR

This PR updates the Deepgram Python SDK's function call implementation to match the official API specification.

Before: Used flat structure with function_name, function_call_id, input/output.

After: Uses proper object structure with functions array containing objects with id, name, arguments, client_side fields for requests and id, name, content for responses. Includes comprehensive unit tests and maintains backward compatibility by removing deprecated fields.

Changes Made

1. Updated Data Structures

FunctionCallRequest (NEW):

  • Changed from flat structure to functions: List[FunctionCall]
  • Added __post_init__ method to convert dict functions to FunctionCall objects
  • Supports multiple functions in a single request

FunctionCall (NEW):

  • Individual function definition with id, name, arguments, client_side
  • Replaces flat function parameters in old implementation

FunctionCallResponse (UPDATED):

  • Changed from function_call_id, output to id, name, content
  • Matches official specification format

2. Updated Import Hierarchy

Added cascading imports across all __init__.py files to support clean imports:

  • from deepgram import FunctionCall, FunctionCallRequest, FunctionCallResponse
  • Updated: deepgram/__init__.py, deepgram/client.py, deepgram/clients/__init__.py
  • Updated: deepgram/clients/agent/__init__.py, deepgram/clients/agent/v1/__init__.py
  • Updated: deepgram/clients/agent/v1/websocket/__init__.py

3. Comprehensive Unit Tests

Created tests/unit_test/test_unit_function_call.py with 21 tests covering:

  • FunctionCall Tests: Creation, serialization, deserialization, getitem access
  • FunctionCallRequest Tests: Single/multiple functions, JSON parsing, dict conversion
  • FunctionCallResponse Tests: Creation, defaults, serialization, deserialization
  • Integration Tests: Specification compliance, backward compatibility, WebSocket integration, real-world scenarios

4. Specification Compliance

Official Deepgram Function Call Request:

{
  "type": "FunctionCallRequest",
  "functions": [
    {
      "id": "unique_id_123",
      "name": "get_weather", 
      "arguments": "{\"location\": \"NYC\"}",
      "client_side": true
    }
  ]
}

Official Deepgram Function Call Response:

{
  "type": "FunctionCallResponse",
  "id": "unique_id_123",
  "name": "get_weather",
  "content": "Sunny, 75°F"
}

5. Backward Compatibility

  • Removed deprecated fields: function_name, function_call_id, input, output
  • No breaking changes: Old field names completely removed, no conflicts
  • Type safety: Full type annotations and proper object conversion

Testing

  • 21 unit tests pass - covers all functionality
  • JSON serialization/deserialization - works correctly
  • WebSocket integration - validated with mock testing
  • Real-world scenarios - multi-function requests supported
  • API validation - no parsing errors with corrected configuration

Files Modified

  • deepgram/clients/agent/v1/websocket/response.py - Added FunctionCall, updated FunctionCallRequest
  • deepgram/clients/agent/v1/websocket/options.py - Updated FunctionCallResponse
  • deepgram/__init__.py - Added function call imports
  • deepgram/client.py - Added function call imports
  • deepgram/clients/__init__.py - Added function call imports
  • deepgram/clients/agent/__init__.py - Added function call imports
  • deepgram/clients/agent/v1/__init__.py - Added function call imports
  • deepgram/clients/agent/v1/websocket/__init__.py - Added function call imports
  • tests/unit_test/test_unit_function_call.py - NEW comprehensive unit tests

API Impact

  • Client-side function calls: Now properly supported without url/method fields
  • Multiple functions: Single request can contain multiple function calls
  • Proper error handling: Better type safety and validation
  • WebSocket integration: Seamless sending/receiving of function call messages

Migration Guide

Before (Deprecated):

# Old FunctionCallRequest - NO LONGER SUPPORTED
request = FunctionCallRequest(
    function_name="get_weather",
    function_call_id="123", 
    input='{"location": "NYC"}'
)

# Old FunctionCallResponse - NO LONGER SUPPORTED  
response = FunctionCallResponse(
    function_call_id="123",
    output="Sunny, 75°F"
)

After (Current):

# New FunctionCallRequest
request = FunctionCallRequest(
    type="FunctionCallRequest",
    functions=[
        FunctionCall(
            id="123",
            name="get_weather",
            arguments='{"location": "NYC"}',
            client_side=True
        )
    ]
)

# New FunctionCallResponse
response = FunctionCallResponse(
    id="123", 
    name="get_weather",
    content="Sunny, 75°F"
)

Types of changes

What types of changes does your code introduce to the community Python SDK?
Put an x in the boxes that apply

  • Bugfix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update or tests (if none of the other choices apply)

Checklist

Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.

  • I have read the CONTRIBUTING doc
  • I have lint'ed all of my code using repo standards
  • I have added tests that prove my fix is effective or that my feature works
  • I have added necessary documentation (if appropriate)

Summary by CodeRabbit

  • New Features

    • Introduced the FunctionCall entity for handling function call data within requests and responses.
    • Enhanced FunctionCallRequest to support multiple function calls and improved data access patterns.
    • Updated FunctionCallResponse with new fields for better clarity and structure.
  • Tests

    • Added comprehensive unit and integration tests for FunctionCall, FunctionCallRequest, and FunctionCallResponse to ensure correct behavior and compatibility.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jul 15, 2025

Walkthrough

This update refactors the handling of function call requests and responses in the Deepgram SDK to align with the latest API specification. It introduces a new FunctionCall dataclass, updates FunctionCallRequest to use a list of FunctionCall objects, modifies related imports and exports throughout the package, and adds comprehensive unit and integration tests.

Changes

File(s) Change Summary
deepgram/init.py, deepgram/client.py, deepgram/clients/init.py,
deepgram/clients/agent/init.py, deepgram/clients/agent/client.py,
deepgram/clients/agent/v1/init.py,
deepgram/clients/agent/v1/websocket/init.py Added or updated imports/exports for the new FunctionCall entity across all relevant modules.
deepgram/clients/agent/v1/websocket/options.py Updated FunctionCallResponse dataclass: removed function_call_id and output; added id, name, content.
deepgram/clients/agent/v1/websocket/response.py Added new FunctionCall dataclass; refactored FunctionCallRequest to use a list of FunctionCall objects, with new methods for initialization and dictionary-like access.
tests/unit_test/test_unit_function_call.py Added new unit and integration tests for FunctionCall, FunctionCallRequest, and FunctionCallResponse.

Sequence Diagram(s)

sequenceDiagram
    participant Client
    participant SDK
    participant DeepgramAPI

    Client->>SDK: Create FunctionCallRequest (with functions list)
    SDK->>DeepgramAPI: Send FunctionCallRequest (serialized)
    DeepgramAPI-->>SDK: Return FunctionCallResponse (with id, name, content)
    SDK-->>Client: Deserialize and provide FunctionCallResponse
Loading

Suggested reviewers

  • naomi-lgbt
  • lukeocodes

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 Pylint (3.3.7)
deepgram/__init__.py
deepgram/client.py
deepgram/clients/__init__.py
  • 7 others

📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between eca4b1e and 144588b.

📒 Files selected for processing (10)
  • deepgram/__init__.py (1 hunks)
  • deepgram/client.py (1 hunks)
  • deepgram/clients/__init__.py (1 hunks)
  • deepgram/clients/agent/__init__.py (1 hunks)
  • deepgram/clients/agent/client.py (2 hunks)
  • deepgram/clients/agent/v1/__init__.py (1 hunks)
  • deepgram/clients/agent/v1/websocket/__init__.py (1 hunks)
  • deepgram/clients/agent/v1/websocket/options.py (1 hunks)
  • deepgram/clients/agent/v1/websocket/response.py (1 hunks)
  • tests/unit_test/test_unit_function_call.py (1 hunks)
🧰 Additional context used
🧠 Learnings (11)
📓 Common learnings
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#424
File: deepgram/clients/speak/v1/response.py:48-209
Timestamp: 2024-10-09T02:19:48.728Z
Learning: User dvonthenen prefers to defer certain suggestions, specifically regarding error handling and documentation enhancements in new data classes of `deepgram/clients/speak/v1/response.py`, and may revisit them later.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#424
File: deepgram/clients/speak/v1/response.py:48-209
Timestamp: 2024-06-27T00:06:23.128Z
Learning: User dvonthenen prefers to defer certain suggestions, specifically regarding error handling and documentation enhancements in new data classes of `deepgram/clients/speak/v1/response.py`, and may revisit them later.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#417
File: deepgram/clients/live/v1/client.py:14-14
Timestamp: 2024-10-09T02:19:48.728Z
Learning: Ignore suggestions to change import paths to local versions in test cases and examples as per user preference to use the actual `deepgram-sdk` package for testing.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#417
File: deepgram/clients/live/v1/client.py:14-14
Timestamp: 2024-06-12T18:02:10.651Z
Learning: Ignore suggestions to change import paths to local versions in test cases and examples as per user preference to use the actual `deepgram-sdk` package for testing.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#445
File: deepgram/client.py:167-168
Timestamp: 2024-10-09T02:19:46.086Z
Learning: In the `deepgram/client.py` file, `ModelResponse` and `ModelsResponse` imports are kept intentionally to expose return objects at various levels of packaging, even if they are not used directly in the file.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#445
File: deepgram/client.py:167-168
Timestamp: 2024-08-14T19:03:11.476Z
Learning: In the `deepgram/client.py` file, `ModelResponse` and `ModelsResponse` imports are kept intentionally to expose return objects at various levels of packaging, even if they are not used directly in the file.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/v1/__init__.py:36-43
Timestamp: 2024-07-01T19:17:04.194Z
Learning: Unused imports in `deepgram/clients/listen/v1/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/v1/__init__.py:36-43
Timestamp: 2024-10-09T02:19:46.086Z
Learning: Unused imports in `deepgram/clients/listen/v1/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/speak/__init__.py:16-19
Timestamp: 2024-10-09T02:19:46.087Z
Learning: Unused imports in `deepgram/clients/speak/__init__.py` are retained for backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/speak/__init__.py:16-19
Timestamp: 2024-07-01T19:12:57.715Z
Learning: Unused imports in `deepgram/clients/speak/__init__.py` are retained for backward compatibility and should not be flagged for removal in reviews.
deepgram/clients/agent/v1/__init__.py (10)
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/v1/websocket/__init__.py:8-8
Timestamp: 2024-07-01T19:21:39.778Z
Learning: Unused imports in `deepgram/clients/listen/v1/websocket/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/v1/websocket/__init__.py:8-8
Timestamp: 2024-10-09T02:19:46.086Z
Learning: Unused imports in `deepgram/clients/listen/v1/websocket/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/v1/__init__.py:36-43
Timestamp: 2024-07-01T19:17:04.194Z
Learning: Unused imports in `deepgram/clients/listen/v1/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/v1/__init__.py:36-43
Timestamp: 2024-10-09T02:19:46.086Z
Learning: Unused imports in `deepgram/clients/listen/v1/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/__init__.py:37-38
Timestamp: 2024-10-09T02:19:46.087Z
Learning: Unused imports in `deepgram/clients/listen/__init__.py` are retained to maintain backward compatibility.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/__init__.py:37-38
Timestamp: 2024-07-01T19:13:29.909Z
Learning: Unused imports in `deepgram/clients/listen/__init__.py` are retained to maintain backward compatibility.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/__init__.py:54-55
Timestamp: 2024-07-01T19:13:11.612Z
Learning: Unused imports in `deepgram/clients/listen/__init__.py` are retained to maintain backward compatibility.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/__init__.py:54-55
Timestamp: 2024-10-09T02:19:46.086Z
Learning: Unused imports in `deepgram/clients/listen/__init__.py` are retained to maintain backward compatibility.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/__init__.py:19-24
Timestamp: 2024-10-09T02:19:46.087Z
Learning: Unused imports in `deepgram/clients/listen/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/__init__.py:19-24
Timestamp: 2024-07-01T19:14:20.539Z
Learning: Unused imports in `deepgram/clients/listen/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
deepgram/client.py (10)
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/v1/websocket/__init__.py:8-8
Timestamp: 2024-07-01T19:21:39.778Z
Learning: Unused imports in `deepgram/clients/listen/v1/websocket/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/v1/websocket/__init__.py:8-8
Timestamp: 2024-10-09T02:19:46.086Z
Learning: Unused imports in `deepgram/clients/listen/v1/websocket/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#445
File: deepgram/client.py:167-168
Timestamp: 2024-10-09T02:19:46.086Z
Learning: In the `deepgram/client.py` file, `ModelResponse` and `ModelsResponse` imports are kept intentionally to expose return objects at various levels of packaging, even if they are not used directly in the file.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#445
File: deepgram/client.py:167-168
Timestamp: 2024-08-14T19:03:11.476Z
Learning: In the `deepgram/client.py` file, `ModelResponse` and `ModelsResponse` imports are kept intentionally to expose return objects at various levels of packaging, even if they are not used directly in the file.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#424
File: deepgram/client.py:81-81
Timestamp: 2024-10-09T02:19:46.087Z
Learning: Imports for SpeakStreamClient and AsyncSpeakStreamClient in `deepgram/client.py` are necessary for export purposes and should not be flagged as unused in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#424
File: deepgram/client.py:81-81
Timestamp: 2024-06-27T00:06:01.811Z
Learning: Imports for SpeakStreamClient and AsyncSpeakStreamClient in `deepgram/client.py` are necessary for export purposes and should not be flagged as unused in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/speak/__init__.py:16-19
Timestamp: 2024-10-09T02:19:46.087Z
Learning: Unused imports in `deepgram/clients/speak/__init__.py` are retained for backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/speak/__init__.py:16-19
Timestamp: 2024-07-01T19:12:57.715Z
Learning: Unused imports in `deepgram/clients/speak/__init__.py` are retained for backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/v1/__init__.py:36-43
Timestamp: 2024-10-09T02:19:46.086Z
Learning: Unused imports in `deepgram/clients/listen/v1/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/v1/__init__.py:36-43
Timestamp: 2024-07-01T19:17:04.194Z
Learning: Unused imports in `deepgram/clients/listen/v1/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
deepgram/clients/agent/__init__.py (10)
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/v1/websocket/__init__.py:8-8
Timestamp: 2024-07-01T19:21:39.778Z
Learning: Unused imports in `deepgram/clients/listen/v1/websocket/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/v1/websocket/__init__.py:8-8
Timestamp: 2024-10-09T02:19:46.086Z
Learning: Unused imports in `deepgram/clients/listen/v1/websocket/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/v1/__init__.py:36-43
Timestamp: 2024-10-09T02:19:46.086Z
Learning: Unused imports in `deepgram/clients/listen/v1/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/v1/__init__.py:36-43
Timestamp: 2024-07-01T19:17:04.194Z
Learning: Unused imports in `deepgram/clients/listen/v1/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/__init__.py:37-38
Timestamp: 2024-10-09T02:19:46.087Z
Learning: Unused imports in `deepgram/clients/listen/__init__.py` are retained to maintain backward compatibility.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/__init__.py:37-38
Timestamp: 2024-07-01T19:13:29.909Z
Learning: Unused imports in `deepgram/clients/listen/__init__.py` are retained to maintain backward compatibility.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/__init__.py:54-55
Timestamp: 2024-07-01T19:13:11.612Z
Learning: Unused imports in `deepgram/clients/listen/__init__.py` are retained to maintain backward compatibility.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/__init__.py:54-55
Timestamp: 2024-10-09T02:19:46.086Z
Learning: Unused imports in `deepgram/clients/listen/__init__.py` are retained to maintain backward compatibility.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/__init__.py:19-24
Timestamp: 2024-10-09T02:19:46.087Z
Learning: Unused imports in `deepgram/clients/listen/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/__init__.py:19-24
Timestamp: 2024-07-01T19:14:20.539Z
Learning: Unused imports in `deepgram/clients/listen/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
deepgram/clients/agent/client.py (10)
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/v1/__init__.py:36-43
Timestamp: 2024-10-09T02:19:46.086Z
Learning: Unused imports in `deepgram/clients/listen/v1/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/v1/__init__.py:36-43
Timestamp: 2024-07-01T19:17:04.194Z
Learning: Unused imports in `deepgram/clients/listen/v1/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/speak/__init__.py:16-19
Timestamp: 2024-10-09T02:19:46.087Z
Learning: Unused imports in `deepgram/clients/speak/__init__.py` are retained for backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/speak/__init__.py:16-19
Timestamp: 2024-07-01T19:12:57.715Z
Learning: Unused imports in `deepgram/clients/speak/__init__.py` are retained for backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#445
File: deepgram/client.py:167-168
Timestamp: 2024-10-09T02:19:46.086Z
Learning: In the `deepgram/client.py` file, `ModelResponse` and `ModelsResponse` imports are kept intentionally to expose return objects at various levels of packaging, even if they are not used directly in the file.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#445
File: deepgram/client.py:167-168
Timestamp: 2024-08-14T19:03:11.476Z
Learning: In the `deepgram/client.py` file, `ModelResponse` and `ModelsResponse` imports are kept intentionally to expose return objects at various levels of packaging, even if they are not used directly in the file.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/__init__.py:19-24
Timestamp: 2024-10-09T02:19:46.087Z
Learning: Unused imports in `deepgram/clients/listen/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/__init__.py:19-24
Timestamp: 2024-07-01T19:14:20.539Z
Learning: Unused imports in `deepgram/clients/listen/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/__init__.py:42-50
Timestamp: 2024-07-01T19:13:28.504Z
Learning: Unused imports in `deepgram/clients/listen/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/__init__.py:42-50
Timestamp: 2024-10-09T02:19:46.086Z
Learning: Unused imports in `deepgram/clients/listen/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
deepgram/clients/agent/v1/websocket/__init__.py (10)
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/v1/websocket/__init__.py:8-8
Timestamp: 2024-07-01T19:21:39.778Z
Learning: Unused imports in `deepgram/clients/listen/v1/websocket/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/v1/websocket/__init__.py:8-8
Timestamp: 2024-10-09T02:19:46.086Z
Learning: Unused imports in `deepgram/clients/listen/v1/websocket/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#445
File: deepgram/client.py:167-168
Timestamp: 2024-10-09T02:19:46.086Z
Learning: In the `deepgram/client.py` file, `ModelResponse` and `ModelsResponse` imports are kept intentionally to expose return objects at various levels of packaging, even if they are not used directly in the file.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#445
File: deepgram/client.py:167-168
Timestamp: 2024-08-14T19:03:11.476Z
Learning: In the `deepgram/client.py` file, `ModelResponse` and `ModelsResponse` imports are kept intentionally to expose return objects at various levels of packaging, even if they are not used directly in the file.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/v1/__init__.py:36-43
Timestamp: 2024-07-01T19:17:04.194Z
Learning: Unused imports in `deepgram/clients/listen/v1/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/v1/__init__.py:36-43
Timestamp: 2024-10-09T02:19:46.086Z
Learning: Unused imports in `deepgram/clients/listen/v1/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/__init__.py:37-38
Timestamp: 2024-10-09T02:19:46.087Z
Learning: Unused imports in `deepgram/clients/listen/__init__.py` are retained to maintain backward compatibility.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/__init__.py:54-55
Timestamp: 2024-10-09T02:19:46.086Z
Learning: Unused imports in `deepgram/clients/listen/__init__.py` are retained to maintain backward compatibility.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/__init__.py:37-38
Timestamp: 2024-07-01T19:13:29.909Z
Learning: Unused imports in `deepgram/clients/listen/__init__.py` are retained to maintain backward compatibility.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/__init__.py:54-55
Timestamp: 2024-07-01T19:13:11.612Z
Learning: Unused imports in `deepgram/clients/listen/__init__.py` are retained to maintain backward compatibility.
deepgram/__init__.py (10)
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#445
File: deepgram/__init__.py:163-164
Timestamp: 2024-07-31T20:47:09.717Z
Learning: To make new entities available for external use in the `deepgram/__init__.py` file, add them to the `__all__` list.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#445
File: deepgram/__init__.py:163-164
Timestamp: 2024-10-09T02:19:46.087Z
Learning: To make new entities available for external use in the `deepgram/__init__.py` file, add them to the `__all__` list.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/speak/__init__.py:16-19
Timestamp: 2024-10-09T02:19:46.087Z
Learning: Unused imports in `deepgram/clients/speak/__init__.py` are retained for backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/speak/__init__.py:16-19
Timestamp: 2024-07-01T19:12:57.715Z
Learning: Unused imports in `deepgram/clients/speak/__init__.py` are retained for backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/v1/__init__.py:36-43
Timestamp: 2024-07-01T19:17:04.194Z
Learning: Unused imports in `deepgram/clients/listen/v1/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/v1/__init__.py:36-43
Timestamp: 2024-10-09T02:19:46.086Z
Learning: Unused imports in `deepgram/clients/listen/v1/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#417
File: deepgram/__init__.py:25-25
Timestamp: 2024-10-09T02:19:46.086Z
Learning: Imports in `deepgram/__init__.py` that appear unused may be necessary for module functionality and should not be flagged as unused without deeper context.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#417
File: deepgram/__init__.py:25-25
Timestamp: 2024-06-12T18:49:39.841Z
Learning: Imports in `deepgram/__init__.py` that appear unused may be necessary for module functionality and should not be flagged as unused without deeper context.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/__init__.py:19-24
Timestamp: 2024-10-09T02:19:46.087Z
Learning: Unused imports in `deepgram/clients/listen/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/__init__.py:19-24
Timestamp: 2024-07-01T19:14:20.539Z
Learning: Unused imports in `deepgram/clients/listen/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
deepgram/clients/agent/v1/websocket/options.py (10)
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/speak/v1/websocket/response.py:23-30
Timestamp: 2024-07-01T19:12:00.190Z
Learning: When using the `dataclasses.field` with default values in the `deepgram/clients/speak/v1/websocket/response.py`, avoid using mutable default arguments. Instead, use `field(default_factory=...)`.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/speak/v1/websocket/response.py:23-30
Timestamp: 2024-10-09T02:19:48.728Z
Learning: When using the `dataclasses.field` with default values in the `deepgram/clients/speak/v1/websocket/response.py`, avoid using mutable default arguments. Instead, use `field(default_factory=...)`.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/v1/websocket/__init__.py:8-8
Timestamp: 2024-07-01T19:21:39.778Z
Learning: Unused imports in `deepgram/clients/listen/v1/websocket/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/v1/websocket/__init__.py:8-8
Timestamp: 2024-10-09T02:19:46.086Z
Learning: Unused imports in `deepgram/clients/listen/v1/websocket/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#431
File: deepgram/clients/listen/v1/websocket/client.py:30-30
Timestamp: 2024-07-11T14:10:17.231Z
Learning: The `LiveOptions` import in `deepgram/clients/listen/v1/websocket/client.py` is intentionally present for future use and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#431
File: deepgram/clients/listen/v1/websocket/client.py:30-30
Timestamp: 2024-10-09T02:19:46.087Z
Learning: The `LiveOptions` import in `deepgram/clients/listen/v1/websocket/client.py` is intentionally present for future use and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/v1/rest/options.py:12-12
Timestamp: 2024-10-09T02:19:46.087Z
Learning: Unused imports in `deepgram/clients/listen/v1/rest/options.py` are retained to maintain backwards compatibility.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/v1/rest/options.py:12-12
Timestamp: 2024-07-01T19:12:36.972Z
Learning: Unused imports in `deepgram/clients/listen/v1/rest/options.py` are retained to maintain backwards compatibility.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#431
File: deepgram/clients/listen/v1/websocket/async_client.py:30-30
Timestamp: 2024-07-11T14:10:24.647Z
Learning: The unused import `LiveOptions` in `deepgram/clients/listen/v1/websocket/async_client.py` is intentional and will be used in PR #432.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#431
File: deepgram/clients/listen/v1/websocket/async_client.py:30-30
Timestamp: 2024-10-09T02:19:46.087Z
Learning: The unused import `LiveOptions` in `deepgram/clients/listen/v1/websocket/async_client.py` is intentional and will be used in PR #432.
deepgram/clients/__init__.py (10)
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/v1/websocket/__init__.py:8-8
Timestamp: 2024-07-01T19:21:39.778Z
Learning: Unused imports in `deepgram/clients/listen/v1/websocket/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/v1/websocket/__init__.py:8-8
Timestamp: 2024-10-09T02:19:46.086Z
Learning: Unused imports in `deepgram/clients/listen/v1/websocket/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/v1/__init__.py:36-43
Timestamp: 2024-10-09T02:19:46.086Z
Learning: Unused imports in `deepgram/clients/listen/v1/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/v1/__init__.py:36-43
Timestamp: 2024-07-01T19:17:04.194Z
Learning: Unused imports in `deepgram/clients/listen/v1/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/speak/__init__.py:16-19
Timestamp: 2024-10-09T02:19:46.087Z
Learning: Unused imports in `deepgram/clients/speak/__init__.py` are retained for backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/speak/__init__.py:16-19
Timestamp: 2024-07-01T19:12:57.715Z
Learning: Unused imports in `deepgram/clients/speak/__init__.py` are retained for backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/__init__.py:19-24
Timestamp: 2024-10-09T02:19:46.087Z
Learning: Unused imports in `deepgram/clients/listen/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/__init__.py:19-24
Timestamp: 2024-07-01T19:14:20.539Z
Learning: Unused imports in `deepgram/clients/listen/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/__init__.py:42-50
Timestamp: 2024-07-01T19:13:28.504Z
Learning: Unused imports in `deepgram/clients/listen/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/__init__.py:42-50
Timestamp: 2024-10-09T02:19:46.086Z
Learning: Unused imports in `deepgram/clients/listen/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
deepgram/clients/agent/v1/websocket/response.py (6)
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/v1/websocket/__init__.py:8-8
Timestamp: 2024-07-01T19:21:39.778Z
Learning: Unused imports in `deepgram/clients/listen/v1/websocket/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/listen/v1/websocket/__init__.py:8-8
Timestamp: 2024-10-09T02:19:46.086Z
Learning: Unused imports in `deepgram/clients/listen/v1/websocket/__init__.py` are retained to maintain backward compatibility and should not be flagged for removal in reviews.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#445
File: deepgram/client.py:167-168
Timestamp: 2024-10-09T02:19:46.086Z
Learning: In the `deepgram/client.py` file, `ModelResponse` and `ModelsResponse` imports are kept intentionally to expose return objects at various levels of packaging, even if they are not used directly in the file.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#445
File: deepgram/client.py:167-168
Timestamp: 2024-08-14T19:03:11.476Z
Learning: In the `deepgram/client.py` file, `ModelResponse` and `ModelsResponse` imports are kept intentionally to expose return objects at various levels of packaging, even if they are not used directly in the file.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/speak/v1/websocket/response.py:23-30
Timestamp: 2024-07-01T19:12:00.190Z
Learning: When using the `dataclasses.field` with default values in the `deepgram/clients/speak/v1/websocket/response.py`, avoid using mutable default arguments. Instead, use `field(default_factory=...)`.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#426
File: deepgram/clients/speak/v1/websocket/response.py:23-30
Timestamp: 2024-10-09T02:19:48.728Z
Learning: When using the `dataclasses.field` with default values in the `deepgram/clients/speak/v1/websocket/response.py`, avoid using mutable default arguments. Instead, use `field(default_factory=...)`.
tests/unit_test/test_unit_function_call.py (2)
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#417
File: deepgram/clients/live/v1/client.py:14-14
Timestamp: 2024-10-09T02:19:48.728Z
Learning: Ignore suggestions to change import paths to local versions in test cases and examples as per user preference to use the actual `deepgram-sdk` package for testing.
Learnt from: dvonthenen
PR: deepgram/deepgram-python-sdk#417
File: deepgram/clients/live/v1/client.py:14-14
Timestamp: 2024-06-12T18:02:10.651Z
Learning: Ignore suggestions to change import paths to local versions in test cases and examples as per user preference to use the actual `deepgram-sdk` package for testing.
🧬 Code Graph Analysis (8)
deepgram/clients/agent/v1/__init__.py (1)
deepgram/clients/agent/v1/websocket/response.py (1)
  • FunctionCall (72-80)
deepgram/client.py (1)
deepgram/clients/agent/v1/websocket/response.py (1)
  • FunctionCall (72-80)
deepgram/clients/agent/__init__.py (1)
deepgram/clients/agent/v1/websocket/response.py (1)
  • FunctionCall (72-80)
deepgram/clients/agent/client.py (1)
deepgram/clients/agent/v1/websocket/response.py (1)
  • FunctionCall (72-80)
deepgram/clients/agent/v1/websocket/__init__.py (1)
deepgram/clients/agent/v1/websocket/response.py (1)
  • FunctionCall (72-80)
deepgram/__init__.py (1)
deepgram/clients/agent/v1/websocket/response.py (1)
  • FunctionCall (72-80)
deepgram/clients/__init__.py (1)
deepgram/clients/agent/v1/websocket/response.py (1)
  • FunctionCall (72-80)
deepgram/clients/agent/v1/websocket/response.py (1)
deepgram/clients/common/v1/shared_response.py (1)
  • BaseResponse (16-44)
🔇 Additional comments (15)
deepgram/clients/agent/v1/__init__.py (1)

29-34: Expose FunctionCall via __all__

FunctionCall (and friends) are now imported here, but if they are not added to this module’s __all__ list they won’t be discoverable by from deepgram.clients.agent.v1 import *, and IDE autocompletion will hide them.

Add:

__all__.append("FunctionCall")
__all__.append("FunctionCallRequest")

near the existing __all__ declaration.

deepgram/clients/agent/v1/websocket/__init__.py (1)

21-24: Consistency: ensure FunctionCall is re-exported

Same remark as above – confirm that __all__ in this sub-package contains "FunctionCall" so that symbol propagation remains symmetrical across the hierarchy.

deepgram/client.py (1)

341-346: Import Path Verification Successful
Re-exports for FunctionCall and FunctionCallRequest are confirmed in deepgram/clients/__init__.py. No further changes are needed.

deepgram/clients/__init__.py (1)

350-350: LGTM - Import addition follows established pattern.

The FunctionCall import is correctly placed within the agent websocket response imports section and follows the consistent pattern used throughout the file.

deepgram/clients/agent/client.py (2)

24-24: LGTM - Import follows established versioning pattern.

The FunctionCall import as LatestFunctionCall is consistent with the versioning pattern used throughout this client file.


74-74: LGTM - Alias assignment follows established pattern.

The FunctionCall alias assignment is consistent with the pattern used for all other response types in this client file.

deepgram/clients/agent/v1/websocket/options.py (1)

451-453: LGTM - Field structure updated to match API specification.

The new field structure (id, name, content) correctly replaces the deprecated fields and aligns with the official API specification. The use of empty string defaults is appropriate for immutable string fields.

tests/unit_test/test_unit_function_call.py (5)

17-80: LGTM - Comprehensive FunctionCall class tests.

The test suite covers all essential aspects of the FunctionCall class including creation, serialization, deserialization, and dictionary-like access. The test structure is clear and assertions are appropriate.


220-279: LGTM - Excellent post_init testing.

The tests for __post_init__ method are particularly well-designed, covering both pure dictionary conversion and mixed type scenarios. This ensures the automatic conversion functionality works correctly in all expected use cases.


396-426: LGTM - Backward compatibility verification.

The backward compatibility tests effectively verify that deprecated fields (function_name, function_call_id, input, output) are no longer present, ensuring the migration is complete and consistent.


427-444: LGTM - Proper WebSocket integration testing.

The WebSocket integration test uses appropriate mocking to verify that FunctionCallResponse objects can be sent via WebSocket without requiring actual network connections. The test structure is clean and verifies the expected behavior.


446-507: LGTM - Real-world scenario test provides excellent validation.

The real-world scenario test effectively simulates the complete function call workflow from JSON parsing through response creation and serialization. This provides valuable integration testing that validates the entire flow works correctly.

deepgram/clients/agent/v1/websocket/response.py (3)

71-81: LGTM - Well-designed FunctionCall dataclass.

The FunctionCall class properly inherits from BaseResponse and includes all required fields (id, name, arguments, client_side) as specified in the API documentation. The structure is clean and follows established dataclass patterns.


92-98: LGTM - Robust post_init implementation.

The __post_init__ method correctly handles the conversion of dictionary entries to FunctionCall objects while preserving existing FunctionCall instances. The list comprehension is efficient and the type checking is appropriate.


100-107: LGTM - Proper getitem implementation.

The __getitem__ method correctly converts dictionary functions to FunctionCall objects when accessed, ensuring consistent behavior regardless of how the data was originally stored. This provides seamless dictionary-like access while maintaining type safety.

✨ Finishing Touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/agent-function-call

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai auto-generate unit tests to generate unit tests for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@jpvajda jpvajda requested a review from lukeocodes July 15, 2025 20:37
@sanduckhan
Copy link

sanduckhan commented Jul 21, 2025

Please merge this when you can <3 or the python SDK is unusable for function calling

Copy link
Contributor

@lukeocodes lukeocodes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm thank you

@jpvajda jpvajda merged commit 20fb81c into main Jul 21, 2025
5 checks passed
@jpvajda jpvajda deleted the fix/agent-function-call branch July 21, 2025 15:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

FunctionCallRequest seems outdated for new API version

3 participants