网站建设个人简历的网页制作邯郸注册网络科技公司
2026/4/17 2:26:09 网站建设 项目流程
网站建设个人简历的网页制作,邯郸注册网络科技公司,阀门公司网站建设,网络营销策划书案例后端技术实践#xff1a;问题与解决方案 目录 GLM接口链接文件获取问题Feign访问400问题排查与解决接口文件传递问题及处理总结与下期预告 GLM接口链接文件获取问题 在项目开发过程中#xff0c;遇到了GLM接口无法获取链接文件的情况。尽管传递的格式正确#xff0c;且链…后端技术实践问题与解决方案目录GLM接口链接文件获取问题Feign访问400问题排查与解决接口文件传递问题及处理总结与下期预告GLM接口链接文件获取问题在项目开发过程中遇到了GLM接口无法获取链接文件的情况。尽管传递的格式正确且链接本身在正常访问场景下可用但无论是minio分享链接还是其他形式的分享链接模型均无法识别。经过排查发现并非文件本身存在问题推测可能是链接被某种规则屏蔽。因为当把文件通过nginx反向代理到公网后文件能够正常被访问。阿里的百炼针对此类情况提供了平台内部的oss存储供模型调用。然而由于对接百炼调用成本对比原平台过高最终并未采用此方案。后来采用了一种较为简单的上云解决方案通过腾讯云赠送的OSS然后使用腾讯云的OSS API开放一个有效期为一小时的链接给模型访问。这样既解决了安全性问题也满足了存储需求。在此过程中为排查模型无法访问链接的原因耗费了好几天时间但遗憾的是最终也未明确具体原因。提工单没有得到有效解释相关文档也无说明。若有大佬知晓原因恳请在评论区留言或私信指点不胜感激。Feign访问400问题排查与解决一次访问400的排查项目启动注册后Feign访问各个接口均出现400错误。经过一个下午加半天的排查最终将问题定位在配置类上当时没有经验实在是惭愧现在写文章的时候回想起来看到4开头的错误码就该想到是请求/配置本身的问题。通过在SynchronousMethodHandler的targetRequest设置断点发现多个配置类重复设置了请求头。按照原本设计不同的client应使用对应的configuration但实际情况是这些配置类被重复使用从而导致请求出现400错误。问题核心该问题的核心在于Feign对客户端专属配置类的处理逻辑和Spring全局的Bean管理机制是分开的。即便配置类没有被Configuration或Component等标记Feign依然能通过特殊逻辑识别并使用其中的Bean。具体原因如下1. Feign客户端的“专属上下文”机制当在FeignClient中通过configuration属性指定配置类如DeepSeekConfiguration时Feign会为这个客户端创建一个独立的子上下文Subcontext。这个上下文专门用于管理当前客户端的配置如拦截器、超时设置等并不依赖Spring的全局容器。这个“子上下文”具有以下作用隔离配置避免不同Feign客户端的配置相互干扰专属加载专门加载configuration属性指定的配置类中的Bean。例如想象一个小区有很多栋楼不同的Feign客户端每栋楼都有自己独立的水电管理系统子上下文互不干扰。2. Feign如何识别配置类中的Bean即便配置类没有Configuration注解Feign依然能够解析其中的Bean方法原因如下Feign会通过SpringFeign的内部逻辑显式扫描configuration指定的类对于这些类中的Bean方法Feign会直接调用它们来创建实例类似“手动实例化”而非依赖Spring全局容器的自动扫描这些通过Bean创建的对象会被注册到当前Feign客户端的“子上下文”中仅对该客户端可见。打个比方就好像在一个班级Feign客户端里老师Feign专门挑选了几个同学配置类来完成特定任务创建Bean而不需要学校Spring全局容器统一安排。3. 为什么不需要Spring全局管理这些Bean若采用全局管理加Configuration会导致Bean被注册到Spring主容器所有Feign客户端都会共享这些Bean这正是之前遇到的问题而Feign客户端的“子上下文”仅需“临时”创建并使用这些Bean用完后仅在当前客户端范围内生效。4. 依赖注入如Value为何依然有效在配置类中Value(${ai.strategy.deepseek.api - key:})依然能获取配置这是因为Feign的“子上下文”会委托Spring主容器解析依赖如Value、Autowired等。也就是说配置类中的依赖如配置项、其他Bean会从主容器中获取但配置类本身和其Bean创建的对象不会被注册到主容器。总结核心区别场景加Configuration不加Configuration仅在FeignClient.configuration中指定Bean注册位置Spring主容器全局可见Feign客户端专属“子上下文”仅当前客户端可见生效范围所有Feign客户端共享仅指定的Feign客户端使用依赖解析主容器自动处理子上下文委托主容器处理依赖简单来讲Feign通过“专属子上下文”机制绕开了Spring全局Bean的管理专门为每个客户端加载配置类中的Bean既保证了配置的隔离性又能正常使用Spring的依赖注入能力。这就是去掉Configuration后Feign依然能使用这些Bean的核心原因。最终的解决方法是去掉这些配置类的Component仅依靠Feign的configuration配置来注册这些bean在Feign的上下文中。接口无法正常传递文件最初接口直接使用inputstream作为返回值然而这一做法导致Feign需要转换器才能正常工作。经过调整将返回值换成byte数组后接口便能正常传递文件。总结与下期预告在本次项目实践中遇到了GLM接口链接文件获取、Feign访问400以及接口文件传递等问题并通过各种排查与分析找到了相应的解决方案。下期将探讨management模块。目前基础模块已基本搭建完成接下来将着手搭建上层模块如同搭建积木一般逐步完善整个项目架构。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询