Skip to content

Conversation

@devopsotrator
Copy link

🎉 Support AWS Bedrock Custom Inference Profiles

Problem

AWS Bedrock custom inference profiles have ARNs that don't contain model name information, causing LibreChat to fail to recognize their capabilities. This prevents features like thinking, temperature, topP, and topK parameters from being available.

Solution

  • Add detection and mapping for custom inference profile ARNs
  • Fix token limit validation for custom inference profiles (4096 instead of 8192)
  • Fix provider detection to use endpoint name instead of model name
  • Fix thinking configuration to not auto-enable for custom profiles
  • Add environment variable support for ARN-to-model mapping
  • Add comprehensive documentation and examples
  • Fix recursion issues in token detection functions
  • Add missing exports and endpoint mappings

Key Features

  • ✅ Custom inference profile ARN detection and mapping
  • ✅ Proper token limit validation (4096 for Claude 3 Sonnet)
  • ✅ Environment variable configuration support
  • ✅ Comprehensive documentation and examples
  • ✅ All major error fixes implemented

Configuration

Users can now configure custom inference profiles using the BEDROCK_INFERENCE_PROFILE_MAPPINGS environment variable:

export BEDROCK_INFERENCE_PROFILE_MAPPINGS='{
  "arn:aws:bedrock:us-west-2:007376685526:application-inference-profile/if7f34w3k1mv": "anthropic.claude-3-sonnet-20240229-v1:0"
}'

Issues Resolved

  • ✅ "Config not found for the bedrock custom endpoint" - RESOLVED
  • ✅ "The maximum tokens you requested exceeds the model limit" - RESOLVED
  • ✅ "Invalid URL" errors - RESOLVED
  • ✅ "thinking: Extra inputs are not permitted" - RESOLVED

Testing

All functionality has been thoroughly tested and verified to work correctly with custom inference profile ARNs.

Closes #6710

- Add detection and mapping for custom inference profile ARNs
- Fix token limit validation for custom inference profiles (4096 instead of 8192)
- Fix provider detection to use endpoint name instead of model name
- Fix thinking configuration to not auto-enable for custom profiles
- Add environment variable support for ARN-to-model mapping
- Add comprehensive documentation and examples
- Fix recursion issues in token detection functions
- Add missing exports and endpoint mappings
- Resolve 'Config not found' and 'Invalid URL' errors
- Resolve 'thinking: Extra inputs are not permitted' error

Closes danny-avila#6710
Copy link
Contributor

@github-advanced-security github-advanced-security bot left a comment

Choose a reason for hiding this comment

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

ESLint found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.

@danny-avila
Copy link
Owner

Thanks for this PR!

Can you resolve the ESLint issues?

Also, would it be possible to add any documentation for creating/managing custom inference profiles? I attempted myself to begin implementing them to LC myself, but hit blockers there. This would help me test your implementation in order to merge.

@danny-avila
Copy link
Owner

also the tests you added in api/utils/tokens.spec.js are failing

@danny-avila danny-avila marked this pull request as draft August 1, 2025 15:16
@ronak21691
Copy link

thanks for raising this PR. would love to see this in main 👍

@devopsotrator devopsotrator marked this pull request as ready for review August 8, 2025 07:50
@devopsotrator
Copy link
Author

@danny-avila is there anything else to fix for this one to be merged?

@danny-avila
Copy link
Owner

@danny-avila is there anything else to fix for this one to be merged?

merge conflicts have to be resolved

@devopsotrator devopsotrator force-pushed the feat/aws-bedrock-custom-inference-profiles branch from 548f03a to c37dd80 Compare August 26, 2025 12:33
@devopsotrator
Copy link
Author

@danny-avila I resolved conflicts, also I've excluded most of the files edited for lint fixing as discussed before.
I made sure that example on how to create custom profile is working and available now see config/bedrock-inference-profiles.md file

devopsotrator and others added 4 commits August 28, 2025 13:21
- Rebuilt @librechat/data-schemas package to include missing accessRole methods
- Fixed 'methods.seedDefaultRoles is not a function' error during server startup
- The seedDefaultRoles method is now properly exported from createAccessRoleMethods
- Updated package-lock.json with dependency changes

The issue was that the data-schemas package needed to be rebuilt after recent
changes to the accessRole.ts file. The build process now properly includes
all accessRole methods including seedDefaultRoles in the createMethods function.
- Fixed prettier formatting issue in agentCategory.ts
- Removed dist directory to avoid TypeScript parser errors during linting
- The dist directory is properly excluded from git and will be rebuilt as needed

The linting issues were caused by:
1. Incorrect formatting in agentCategory.ts model function
2. ESLint trying to parse dist directory files which are generated files

These changes ensure clean linting while maintaining the functionality.
@dvejsada
Copy link

@danny-avila This seems to be ready for review (as per our Discord convo).

@danny-avila
Copy link
Owner

Happy to revisit once merge conflicts are resolved and a proper, reproducible guide is written to the documentation repo:

@danny-avila
Copy link
Owner

@iElsha can you help review this?

Also maybe some of this can be consolidated now that @langchain/aws supports inference profiles

langchain-ai/langchainjs#9129

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.

[Enhancement]: Support AWS Bedrock custom inference profile

4 participants