Skip to content

refactor: migrate some ns.model to BaseModel#30388

Merged
crazywoola merged 7 commits intolanggenius:mainfrom
asukaminato0721:28015
Dec 31, 2025
Merged

refactor: migrate some ns.model to BaseModel#30388
crazywoola merged 7 commits intolanggenius:mainfrom
asukaminato0721:28015

Conversation

@asukaminato0721
Copy link
Contributor

@asukaminato0721 asukaminato0721 commented Dec 30, 2025

Important

  1. Make sure you have read our contribution guidelines
  2. Ensure there is an associated issue and you have been assigned to it
  3. Use the correct syntax to link this PR: Fixes #<issue number>.

Summary

part of #28015 , add test

Screenshots

Before After
... ...

Checklist

  • This change requires a documentation update, included: Dify Document
  • I understand that this PR may be closed in case there was no previous discussion or issues. (This doesn't apply to typos!)
  • I've added a test for each change that was introduced, and I tried as much as possible to make a single atomic change.
  • I've updated the documentation accordingly.
  • I ran dev/reformat(backend) and cd web && npx lint-staged(frontend) to appease the lint gods
Copilot AI review requested due to automatic review settings December 30, 2025 12:19
@dosubot dosubot bot added the size:L This PR changes 100-499 lines, ignoring generated files. label Dec 30, 2025
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @asukaminato0721, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request initiates a significant refactoring effort by migrating several core API response models from Flask-RestX's fields system to Pydantic BaseModel classes. This change aims to modernize the data modeling approach, leverage Pydantic's robust validation and serialization features, and streamline API endpoint responses. The migration primarily affects SystemParameters, Parameters, and Site models, along with corresponding updates to API controllers to utilize these new Pydantic structures.

Highlights

  • Pydantic Model Migration: Key API response models, specifically SystemParameters, Parameters, and Site, have been refactored from flask_restx.fields dictionary-based definitions to pydantic.BaseModel classes, enhancing data validation and serialization.
  • API Endpoint Simplification: The @marshal_with decorators have been removed from several API endpoints, indicating a shift towards Pydantic models directly handling the structuring and serialization of response data.
  • Improved Type Safety and Readability: The adoption of Pydantic BaseModel introduces better type hinting and data validation, and the use of TypeAlias improves code readability for complex type definitions like JSONValue and JSONObject.
  • New Unit Tests: Dedicated unit tests have been added for the newly migrated Parameters and Site Pydantic models, ensuring their correct behavior, including round-trip validation and the icon_url computed property.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@asukaminato0721 asukaminato0721 changed the title migrate some ns.model to BaseModel refactor: migrate some ns.model to BaseModel Dec 30, 2025
gemini-code-assist[bot]

This comment was marked as outdated.

This comment was marked as outdated.

Added type ignore comment for computed_field decorator.
@asukaminato0721
Copy link
Contributor Author

/gemini review

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request is a solid refactoring effort, migrating several flask-restx response models to Pydantic BaseModel. The changes in api/controllers/common/fields.py for Parameters and Site models are well-implemented, and the corresponding updates in the controllers to use Pydantic for validation and serialization are consistent and improve code quality. The introduction of unit tests for these new models is a great addition. I've found one potential issue and suggested a simplification that also improves robustness.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 19 out of 19 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

asukaminato0721 and others added 2 commits December 30, 2025 23:57
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
@dosubot dosubot bot added the lgtm This PR has been approved by a maintainer label Dec 31, 2025
@crazywoola crazywoola merged commit 5b02e5d into langgenius:main Dec 31, 2025
11 checks passed
@asukaminato0721 asukaminato0721 deleted the 28015 branch December 31, 2025 16:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lgtm This PR has been approved by a maintainer size:L This PR changes 100-499 lines, ignoring generated files.

3 participants