searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

ragas支持deepseek

2025-06-06 08:26:19
9
0

ragas支持deepseek

ragas是用来评估rag系统和LLM指标的开源框架,可以测量rag系统的上下文相关性、上下文召回率、答案忠实度、答案相关性等特性。

使用中发现上游ragas的无法识别deepseek的标签,

魔改了一下,官方说要支持,但是现在还没有影子。。。

官方有提到了自定义LLM的方式,但是我没有试成功.

魔改修复

我用的是本地virtenv的方式安装的ragas,由于安装时候文件在本地,我就直接改了相关的py文件

加的地方在pydantic_prompt.py的generate_multiple里,其实这里更好,因为可以改一个地方解决很多问题

# 去掉think签,保证是真实的响应
    def process_string(self, s):
        index = s.rfind('</think>')
        if index != -1:
            return s[index+len("</think>\n\n"):]
        else:
            return s  # 如果没有找到</think>,返回原字符串
...
        parser = RagasOutputParser(pydantic_object=self.output_model)
        for i in range(n):
            output_string = resp.generations[0][i].text
            #这里刚收到响应,可以作解析
            output_string = self.process_string(output_string)
            logger.error(f"output_string:{output_string}")
            try:
                answer = await parser.parse_output_string(
                    output_string=output_string,
                    prompt_value=prompt_value,
                    llm=llm,
                    callbacks=prompt_cb,
                    retries_left=retries_left,
                )
                processed_output = self.process_output(answer, data)  # type: ignore
                output_models.append(processed_output)
            except RagasOutputParserException as e:
                prompt_rm.on_chain_error(error=e)
                logger.error("Prompt %s failed to parse output: %s", self.name, e)
                raise e
0条评论
0 / 1000
c****o
3文章数
1粉丝数
c****o
3 文章 | 1 粉丝
c****o
3文章数
1粉丝数
c****o
3 文章 | 1 粉丝
原创

ragas支持deepseek

2025-06-06 08:26:19
9
0

ragas支持deepseek

ragas是用来评估rag系统和LLM指标的开源框架,可以测量rag系统的上下文相关性、上下文召回率、答案忠实度、答案相关性等特性。

使用中发现上游ragas的无法识别deepseek的标签,

魔改了一下,官方说要支持,但是现在还没有影子。。。

官方有提到了自定义LLM的方式,但是我没有试成功.

魔改修复

我用的是本地virtenv的方式安装的ragas,由于安装时候文件在本地,我就直接改了相关的py文件

加的地方在pydantic_prompt.py的generate_multiple里,其实这里更好,因为可以改一个地方解决很多问题

# 去掉think签,保证是真实的响应
    def process_string(self, s):
        index = s.rfind('</think>')
        if index != -1:
            return s[index+len("</think>\n\n"):]
        else:
            return s  # 如果没有找到</think>,返回原字符串
...
        parser = RagasOutputParser(pydantic_object=self.output_model)
        for i in range(n):
            output_string = resp.generations[0][i].text
            #这里刚收到响应,可以作解析
            output_string = self.process_string(output_string)
            logger.error(f"output_string:{output_string}")
            try:
                answer = await parser.parse_output_string(
                    output_string=output_string,
                    prompt_value=prompt_value,
                    llm=llm,
                    callbacks=prompt_cb,
                    retries_left=retries_left,
                )
                processed_output = self.process_output(answer, data)  # type: ignore
                output_models.append(processed_output)
            except RagasOutputParserException as e:
                prompt_rm.on_chain_error(error=e)
                logger.error("Prompt %s failed to parse output: %s", self.name, e)
                raise e
文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0