tiny-engine icon indicating copy to clipboard operation
tiny-engine copied to clipboard

feat:AI builds a system to add image resources to dialogues

Open lichunn opened this issue 2 months ago • 1 comments

English | 简体中文

PR

PR Checklist

Please check if your PR fulfills the following requirements:

  • [ ] The commit message follows our Commit Message Guidelines
  • [ ] Tests for the changes have been added (for bug fixes / features)
  • [ ] Docs have been added / updated (for bug fixes / features)
  • [ ] Built its own designer, fully self-validated

PR Type

What kind of change does this PR introduce?

  • [ ] Bugfix
  • [ ] Feature
  • [ ] Code style update (formatting, local variables)
  • [ ] Refactoring (no functional changes, no api changes)
  • [ ] Build related changes
  • [ ] CI related changes
  • [ ] Documentation content changes
  • [ ] Other... Please describe:

Background and solution

What is the current behavior?

Issue Number: N/A

What is the new behavior?

Does this PR introduce a breaking change?

  • [ ] Yes
  • [ ] No

Other information

Summary by CodeRabbit

  • Bug Fixes

    • Schema updates are now properly applied and persisted when processing responses.
  • Improvements

    • Builder responses now include images from fetched resources.
    • Custom prompt options are now respected when provided.

lichunn avatar Oct 23 '25 08:10 lichunn

Walkthrough

The setup() function now accepts props to enable prop access within setup scope. getSendSeesionProcess() is refactored to async, fetching additional resources for Builder type and constructing an image string injected into the first message. Schema updates are now persisted via setSchema(result). sendStreamRequest() properly awaits the async process.

Changes

Cohort / File(s) Summary
Async refactoring and prop integration
packages/plugins/robot/src/Main.vue
setup() now accepts props; getSendSeesionProcess() converted to async with conditional resource fetching for Builder aiType; image string construction from fetched URLs injected into message; prompt selection uses props.options.prompts with PROMPTS fallback; sendStreamRequest() now awaits async result; schema updates applied via setSchema(result) during Builder response handling

Sequence Diagram(s)

sequenceDiagram
    participant Component as Main Component
    participant Session as getSendSeesionProcess()
    participant Resources as Resource Fetch
    participant Stream as Stream Request
    participant Schema as Schema Update

    Component->>Session: await getSendSeesionProcess(props)
    
    alt aiType === Builder
        Session->>Resources: Fetch additional resources
        Resources-->>Session: Resource URLs
        Session->>Session: Construct imageStr
        Session->>Session: Inject into message
    end
    
    Session->>Session: Resolve prompts from props or PROMPTS
    Session-->>Component: Return prepared session data
    
    Component->>Stream: await sendStreamRequest(...)
    Stream-->>Component: Response received
    
    alt Builder response processing
        Component->>Schema: Compute new schema (JSON patches)
        Schema->>Schema: setSchema(result)
        Schema-->>Component: Schema persisted
    end

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

The diff involves async refactoring requiring careful verification of error handling and promise resolution, conditional Builder-specific logic necessitating mental model tracking, and new schema persistence operations. Changes are confined to a single file with clear structural intent, but the interplay between async flows and conditional branching demands focused attention.

Poem

🐰 Async hops through Builder's door, Props now dance forevermore, Schemas bloom where resources gleam, A rabbit's code—a developer's dream! ✨

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The pull request title "feat:AI builds a system to add image resources to dialogues" is directly related to the primary change in the changeset. The raw summary confirms that the main modifications involve making getSendSeesionProcess asynchronous to fetch image resources when aiType is Builder, constructing an imageStr from fetched resource URLs, and injecting this into the first message content. The title accurately captures this core functionality addition of incorporating image resources into AI dialogues. While the phrasing "AI builds a system" is slightly unconventional, the title remains clear and specific enough for a teammate to understand the primary feature being added.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • [ ] Create PR with unit tests
  • [ ] Post copyable unit tests in a comment

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

Comment @coderabbitai help to get the list of available commands and usage tips.

coderabbitai[bot] avatar Oct 23 '25 08:10 coderabbitai[bot]