当前位置: 首页 > wzjs >正文

互联网创业就是做网站吗西安百度关键词推广

互联网创业就是做网站吗,西安百度关键词推广,网络公司经营范围参考,如何免费申请邮箱域名回到目录 【部署】手搓一个dify可用的rerank模型接口服务 本地知识库有保密需要,不想上传互联网模型进行rerank处理。但是,vllm部署rerank模型硬件要求高,ollma不支持rerank模型,因此只能考虑按照openai的接口标准写一个rerank的…

回到目录

【部署】手搓一个dify可用的rerank模型接口服务

本地知识库有保密需要,不想上传互联网模型进行rerank处理。但是,vllm部署rerank模型硬件要求高,ollma不支持rerank模型,因此只能考虑按照openai的接口标准写一个rerank的接口程序

1. 安装必要的python基础环境

 $ pip install uv -i https://pypi.tuna.tsinghua.edu.cn/simple$ uv pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple下载量比较大,耗时有点长$ uv pip install modelscope -i https://pypi.tuna.tsinghua.edu.cn/simple$ uv pip install "modelscope[multi-modal]" -i https://pypi.tuna.tsinghua.edu.cn/simple$ uv pip install fastapi uvicorn  -i https://pypi.tuna.tsinghua.edu.cn/simple

2. 测试一下基础环境是否工作正常

$ uv run python -c “from modelscope.pipelines import pipeline;print(pipeline(‘word-segmentation’)(‘今天天气不错,适合 出去游玩’))”

3. 用模型介绍页的案例测试score打分效果

# test_modelscope.pyimport torch
from modelscope import AutoModelForSequenceClassification, AutoTokenizertokenizer = AutoTokenizer.from_pretrained('BAAI/bge-reranker-large')model = AutoModelForSequenceClassification.from_pretrained('BAAI/bge-reranker-large')
model.eval()pairs = [['what is panda?', 'hi'], ['what is panda?', 'The giant panda (Ailuropoda melanoleuca), sometimes called a panda bear or simply panda, is a bear species endemic to China.']]
with torch.no_grad():inputs = tokenizer(pairs, padding=True, truncation=True, return_tensors='pt', max_length=512)scores = model(**inputs, return_dict=True).logits.view(-1, ).float()print(scores)
 $ uv run test_modelscope.py
tensor([-5.6085,  5.7623])

启动程序,第一个问题 低分表示问题和答案关联度不高; 第二个问题 高分表示关联度高

4. (本文重点)用fastapi封装一个openai接口标准的rerank模型

# app.pyfrom fastapi import FastAPI
from pydantic import BaseModel
from typing import List, Optional# 假设你已经定义了 RerankAPI 类
from rerank_module import RerankAPI  # 你可以根据实际情况调整 import 路径app = FastAPI()
reranker = RerankAPI()class RerankRequest(BaseModel):query: strdocuments: List[str]top_n: Optional[int] = Nonereturn_documents: bool = True@app.post("/rerank")
def api_rerank(request: RerankRequest):result = reranker.rerank(request.query,request.documents,request.top_n,request.return_documents)return resultif __name__ == "__main__":import uvicornuvicorn.run(app, host="0.0.0.0", port=8000)

上面代码开启8000端口,并调用 rerank_module.py的 rerank() 提供接口服务

# rerank_module.pyimport torch
from modelscope import AutoModelForSequenceClassification, AutoTokenizerclass RerankAPI:def __init__(self, model_name='BAAI/bge-reranker-large'):self.tokenizer = AutoTokenizer.from_pretrained(model_name)self.model = AutoModelForSequenceClassification.from_pretrained(model_name)self.model.eval()def rerank(self, query: str, documents: list, top_n: int = None, return_documents: bool = True):"""对 query 和 documents 进行 rerank,并返回排序后的结果。:param query: 用户查询语句:param documents: 文档列表(字符串数组):param top_n: 返回前 n 个最相关的结果(None 表示全部):param return_documents: 是否在返回中包含原始文档内容:return: 包含 rerank 结果的字典列表,包括 index、document(可选)、relevance_score"""pairs = [[query, doc] for doc in documents]with torch.no_grad():inputs = self.tokenizer(pairs,padding=True,truncation=True,max_length=512,return_tensors='pt')scores = self.model(**inputs).logits.view(-1).float().cpu().numpy()# 构造输出格式results = []for idx, (doc, score) in enumerate(zip(documents, scores)):result = {"index": idx,"relevance_score": float(score)}if return_documents:result["document"] = docresults.append(result)# 按照得分降序排序results.sort(key=lambda x: x["relevance_score"], reverse=True)# 截取 top_nif top_n is not None:results = results[:top_n]return {"results": results}

上面代码按照openai的接口标准,提供rerank排序结果

5. 启动

 $ uv run app.py
INFO:     Started server process [344887]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)

启动正常,8000端口提供服务
在这里插入图片描述
[图3]
fastapi的docs接口显示正常
在这里插入图片描述
[图4]
调用/rerank接口服务,返回正常

6. 在dify前台配置好rerank模型,后续就可以愉快地使用了

在这里插入图片描述
[图1] 增加 openai-api-compatible插件
在这里插入图片描述
[图2]配置rerank模型
在这里插入图片描述

[图5]配置到系统模型

本文完毕

回到目录

http://www.dtcms.com/wzjs/817864.html

相关文章:

  • 山西企业建站方案网站开发有什么好的介绍
  • net112企业建站系统遵义一般做一个网站需要多少钱
  • 花都网站建设价格南通网站建设培训
  • 乔拓云智能建站官网安徽建设通网站
  • 全程营销网站建设公司职业学院网站建设方案
  • 上海建网站制wordpress留言板
  • 盘锦网站建设兼职有没有专门做花鸟鱼虫的网站
  • 网站建设网站形象国内优秀网站设计师
  • 大都会app约快速排名seo
  • 柳江企业网站建设价格为网站 做字幕
  • 朝阳网络 网站建设php网站开发电子书
  • 网站首页tdk怎么做网页首页代码
  • 建设互联网教育网站wordpress手机页面模板
  • 一句话介绍网站开发临沂网站群发软件
  • 全国企业信用信息公示系统网站建网赌网站流程
  • 用网上的文章做网站行吗网站 手机站开发 cms
  • joomla 2.5:你的网站建设_使用与管理 下载石家庄做网站百度推广
  • 旅游网站国际业务怎样做seo推广怎么弄
  • 怎么做装球的网站网站建设 模版
  • 怎样做关键词网站连接垂直汽车网站做电商的优势
  • 网站域名续费营销型网站如何策划
  • 网站建设预算表湛江城市建设培训中心网站
  • 做的网站.如何在局域网内访问东莞app定制开发公司
  • 网站制作把图片做背景微信公众号小程序制作流程
  • 湖南平台网站建设哪里有餐饮管理和营销方案
  • 中小企业网站提供了什么蓝色科技企业网站模板
  • 网站开发报价什么是网络设计图
  • 自住房车各项建设部网站网站建设需要服务器空间
  • 网站没建好可以备案吗WordPress评论api
  • 如何识别网站的建站程序wordpress 展开收缩插件