[PR #950] [MERGED] feat(azure_openai): add support for calculating vision costs in streaming mode #1636

Closed
opened 2026-02-16 10:23:32 -05:00 by yindo · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/langgenius/dify-official-plugins/pull/950
Author: @ymshenyu
Created: 5/21/2025
Status: Merged
Merged: 6/25/2025
Merged by: @crazywoola

Base: mainHead: main


📝 Commits (10+)

  • 31587c0 feat: add support for calculating vision costs
  • 99ec28a fix: gpt-4.1-mini/nano and o4-mini calculation
  • f3f5e7d fix: prefer ceil over round
  • a80203f chore: simplify code
  • 89258ce fix: tokens should multiply by a factor to get final tokens
  • c33abcc chore: improve compatibility
  • d4d6342 fix: fix image tiles calculation
  • 393873e fix: do not execute _num_tokens_from_images if image_detailsis empty
  • d6a0b2a feat: get streaming tokens count from usage
  • b0ae188 chore: update requirements.txt

📊 Changes

3 files changed (+117 additions, -11 deletions)

View changed files

📝 models/azure_openai/manifest.yaml (+1 -1)
📝 models/azure_openai/models/llm/llm.py (+115 -10)
📝 models/azure_openai/requirements.txt (+1 -0)

📄 Description

Related Issues or Context

Before:
image
After:
image
The solution may not be fully accurate, especially for some edge cases. Please let me know if you have any suggestions

This PR contains Changes to Non-Plugin

  • Documentation
  • Other

This PR contains Changes to Non-LLM Models Plugin

  • I have Run Comprehensive Tests Relevant to My Changes

This PR contains Changes to LLM Models Plugin

  • My Changes Affect Message Flow Handling (System Messages and User→Assistant Turn-Taking)
  • My Changes Affect Tool Interaction Flow (Multi-Round Usage and Output Handling, for both Agent App and Agent Node)
  • My Changes Affect Multimodal Input Handling (Images, PDFs, Audio, Video, etc.)
  • My Changes Affect Multimodal Output Generation (Images, Audio, Video, etc.)
  • My Changes Affect Structured Output Format (JSON, XML, etc.)
  • My Changes Affect Token Consumption Metrics
  • My Changes Affect Other LLM Functionalities (Reasoning Process, Grounding, Prompt Caching, etc.)
  • Other Changes (Add New Models, etc.)

Version Control (Any Changes to the Plugin Will Require Bumping the Version)

  • I have Bumped Up the Version in Manifest.yaml (Top-Level Version Field, Not in Meta Section)

Dify Plugin SDK Version

  • I'm Using dify_plugin>=0.2.0,<0.3.0 in requirements.txt (SDK docs)

Environment Verification (If Any Code Changes)

Local Deployment Environment

  • Dify Version is: , I have Tested My Changes on Local Deployment Dify with a Clean Environment That Matches the Production Configuration.

SaaS Environment

  • I have Tested My Changes on cloud.dify.ai with a Clean Environment That Matches the Production Configuration

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/langgenius/dify-official-plugins/pull/950 **Author:** [@ymshenyu](https://github.com/ymshenyu) **Created:** 5/21/2025 **Status:** ✅ Merged **Merged:** 6/25/2025 **Merged by:** [@crazywoola](https://github.com/crazywoola) **Base:** `main` ← **Head:** `main` --- ### 📝 Commits (10+) - [`31587c0`](https://github.com/langgenius/dify-official-plugins/commit/31587c0c5a1245591c9af3d339f036ca0acedeb2) feat: add support for calculating vision costs - [`99ec28a`](https://github.com/langgenius/dify-official-plugins/commit/99ec28a9708001fff3ad810b84b145694abbb5cc) fix: gpt-4.1-mini/nano and o4-mini calculation - [`f3f5e7d`](https://github.com/langgenius/dify-official-plugins/commit/f3f5e7dda859373a312891b93a03b3528e6a95a7) fix: prefer ceil over round - [`a80203f`](https://github.com/langgenius/dify-official-plugins/commit/a80203f23b6ea332145fc7843c09d4b3c085999e) chore: simplify code - [`89258ce`](https://github.com/langgenius/dify-official-plugins/commit/89258ce9145ea7f8c9537a8bed2283e7b116287d) fix: tokens should multiply by a factor to get final tokens - [`c33abcc`](https://github.com/langgenius/dify-official-plugins/commit/c33abcc3c7a5549ae7826138b4151b3de8644035) chore: improve compatibility - [`d4d6342`](https://github.com/langgenius/dify-official-plugins/commit/d4d6342f3921783d8c0f78c651804c6cbd1665ad) fix: fix image tiles calculation - [`393873e`](https://github.com/langgenius/dify-official-plugins/commit/393873e93a0bcffdaa46607a6c7115e729404846) fix: do not execute `_num_tokens_from_images` if `image_details`is empty - [`d6a0b2a`](https://github.com/langgenius/dify-official-plugins/commit/d6a0b2a55b31835b835036b51f34c808b46b349b) feat: get streaming tokens count from usage - [`b0ae188`](https://github.com/langgenius/dify-official-plugins/commit/b0ae1889d8c2c9234895d8dd4548c214c776c659) chore: update requirements.txt ### 📊 Changes **3 files changed** (+117 additions, -11 deletions) <details> <summary>View changed files</summary> 📝 `models/azure_openai/manifest.yaml` (+1 -1) 📝 `models/azure_openai/models/llm/llm.py` (+115 -10) 📝 `models/azure_openai/requirements.txt` (+1 -0) </details> ### 📄 Description ## Related Issues or Context Before: ![image](https://github.com/user-attachments/assets/008e9961-eb54-4750-a1aa-fb97cd4b042d) After: ![image](https://github.com/user-attachments/assets/7852b3af-ba45-4212-ba0f-08589f02f1a4) The solution may not be fully accurate, especially for some edge cases. Please let me know if you have any suggestions <!-- ⚠️ NOTE: This repository is for Dify Official Plugins only. For community contributions, please submit to https://github.com/langgenius/dify-plugins instead. - Link Related Issues if Applicable: #issue_number - Or Provide Context about Why this Change is Needed --> ## This PR contains Changes to *Non-Plugin* <!-- Put an `x` in all the boxes that apply by replacing [ ] with [x] For example: - [x] Documentation --> - [ ] Documentation - [ ] Other ## This PR contains Changes to *Non-LLM Models Plugin* - [x] I have Run Comprehensive Tests Relevant to My Changes <!-- 📷 Include Screenshots/Videos Demonstrating the Fix, New Feature, or the Behavior Before/After Breaking Changes. --> ## This PR contains Changes to *LLM Models Plugin* <!-- LLM Models Test Example: --> <!-- https://github.com/langgenius/dify-official-plugins/blob/main/.assets/test-examples/llm-plugin-tests/llm_test_example.md --> - [ ] My Changes Affect Message Flow Handling (System Messages and User→Assistant Turn-Taking) <!-- 📷 Include Screenshots/Videos Demonstrating the Fix, New Feature, or the Behavior Before/After Breaking Changes. --> - [ ] My Changes Affect Tool Interaction Flow (Multi-Round Usage and Output Handling, for both Agent App and Agent Node) <!-- 📷 Include Screenshots/Videos Demonstrating the Fix, New Feature, or the Behavior Before/After Breaking Changes. --> - [ ] My Changes Affect Multimodal Input Handling (Images, PDFs, Audio, Video, etc.) <!-- 📷 Include Screenshots/Videos Demonstrating the Fix, New Feature, or the Behavior Before/After Breaking Changes. --> - [ ] My Changes Affect Multimodal Output Generation (Images, Audio, Video, etc.) <!-- 📷 Include Screenshots/Videos Demonstrating the Fix, New Feature, or the Behavior Before/After Breaking Changes. --> - [ ] My Changes Affect Structured Output Format (JSON, XML, etc.) <!-- 📷 Include Screenshots/Videos Demonstrating the Fix, New Feature, or the Behavior Before/After Breaking Changes. --> - [x] My Changes Affect Token Consumption Metrics <!-- 📷 Include Screenshots/Videos Demonstrating the Fix, New Feature, or the Behavior Before/After Breaking Changes. --> - [ ] My Changes Affect Other LLM Functionalities (Reasoning Process, Grounding, Prompt Caching, etc.) <!-- 📷 Include Screenshots/Videos Demonstrating the Fix, New Feature, or the Behavior Before/After Breaking Changes. --> - [ ] Other Changes (Add New Models, etc.) <!-- 📷 Include Screenshots/Videos Demonstrating the Fix, New Feature, or the Behavior Before/After Breaking Changes. --> ## Version Control (Any Changes to the Plugin Will Require Bumping the Version) - [ ] I have Bumped Up the Version in Manifest.yaml (Top-Level `Version` Field, Not in Meta Section) <!-- ⚠️ NOTE: Version Format: MAJOR.MINOR.PATCH - MAJOR (0.x.x): Reserved for Significant architectural changes or incompatible API modifications - MINOR (x.0.x): For New feature additions while maintaining backward compatibility - PATCH (x.x.0): For Backward-compatible bug fixes and minor improvements - Note: Each Version Component (MAJOR, MINOR, PATCH) Can Be 2 Digits, e.g., 10.11.22 --> ## Dify Plugin SDK Version - [x] I'm Using `dify_plugin>=0.2.0,<0.3.0` in requirements.txt ([SDK docs](https://github.com/langgenius/dify-plugin-sdks/blob/main/python/README.md)) ## Environment Verification (If Any Code Changes) <!-- ⚠️ NOTE: At Least One Environment Must Be Tested. --> ### Local Deployment Environment - [ ] Dify Version is: <!-- Specify Your Version (e.g., 1.2.0) -->, I have Tested My Changes on Local Deployment Dify with a Clean Environment That Matches the Production Configuration. <!-- - Python Virtual Env Matching Manifest.yaml & requirements.txt - No Breaking Changes in Dify That May Affect the Testing Result --> ### SaaS Environment - [ ] I have Tested My Changes on cloud.dify.ai with a Clean Environment That Matches the Production Configuration <!-- - Python Virtual Env Matching Manifest.yaml & requirements.txt --> --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
yindo added the pull-request label 2026-02-16 10:23:32 -05:00
yindo closed this issue 2026-02-16 10:23:32 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify-official-plugins#1636