MarsCodeAI学习问题总结(上) | 豆包MarsCode AI刷题

220 阅读3分钟

随着时间的流逝,大家也差不多都把AI项目学完了,这里楼主总结了一下自己遇到过的问题,与大家进行分享,也欢迎大家来补充!

06 Huggingfaces

首先是,调用模型中Huggingfaces的问题,很多人哪怕完成Hug的注册,依然不能调用,这里的原因是因为豆包对网络访问使用了限制,把国外的hf给ban了,哪怕先下下来,后面对hf中多个模型调用,所给的10G硬盘也不够用,所有楼主这边建议熟悉下申请hf流程就可以了,当然也有解决办法,就是进行自己的本地部署就可以使用了,不过这里楼主道行就不展开说明了

10/04-05

这里大家运行的时候,会出现类似的以下报错:

File "/home/cloudide/.local/lib/python3.12/site-packages/langchain_openai/chat_models/base.py", line 904, in get_num_tokens_from_messages raise NotImplementedError( NotImplementedError: 
get_num_tokens_from_messages() is not presently implemented for model cl100k_base. See https://platform.openai.com/docs/guides/text-generation/managing-tokens for information on how messages are converted to tokens.

这里的报错是显示豆包库函数中get_num_tokens_from_messages这个函数的报错,这里楼主去浏览了下各个大佬的解决办法,这里我使用的是如下解决办法:

只需在如下代码前面增加类补充即可

'''原本代码
llm = ChatOpenAI( temperature=0.5, model=os.environ.get("LLM_MODELEND"), )
'''修改后
```python
class ChildChatOpenAI(ChatOpenAI):
    def get_num_tokens_from_messages(self, messages: List[BaseMessage]) -> int:
        model, encoding = self._get_encoding_model()
        # 注意:这里只是解决了计算的问题,具体计算方案具体准确取决于具体模型
        if model.startswith("cl100k_base"):
            # 调用祖父类的函数
            return super(BaseChatOpenAI, self).get_num_tokens_from_messages(messages)
        else:
            return super().get_num_tokens_from_messages(messages)


llm = ChildChatOpenAI(
    temperature=0.5,
    model=os.environ.get("LLM_MODELEND"),
)

04和05解决方法一样

11 Serpapi

首先,打开魔法,进入官网(serpapi.com/users/welco… ,注册的时候楼主是挺流畅的,但是听大家说在手机验证码处会有问题;这里楼主当时注册时是在开着魔法的时候进行手机验证码接收,1-2分钟就接收到了,大家可以试试,楼主用的是电信,不知道有没有区别。

13

首先是01的报错,这里解决方法很简单,只需将Plan&xecute.py文件名更改为PlanExecute.py即可,没错就是重命名。

而03的报错中会显示:

playwright._impl._errors.Error: BrowserType.launch: 
╔══════════════════════════════════════════════════════╗
║ Host system is missing dependencies to run browsers. ║
║ Please install them with the following command:      ║
║                                                      ║
║     sudo playwright install-deps                     ║
║                                                      ║
║ Alternatively, use apt:                              ║
║     sudo apt-get install libdrm2\                    ║
║         libgbm1                                      ║
║                                                      ║
║ <3 Playwright Team                                   ║
╚══════════════════════════════════════════════════════╝

很明显只需执行图中提示的sudo playwright install-deps即可,但是!它会显示该命令不存在,然后我们只需将sudo playwright install-deps改为playwright install-deps即可,这是为什么呢?

原因就是sudo是以root权限执行,我们并未被给予这个权限级别,而当我们使用playwright install-deps即可安装,是因为这条会在当前用户的环境下执行,能够正确访问用户的配置和环境变量。通常只需要用户级别的权限即可,因为它主要是安装一些与浏览器相关的依赖。

好了,接下来就可以直接运行啦!