使用自定义大模型来部署Wren AI(开源的文本生成SQL方案)

使用自定义大模型来部署Wren AI(开源的文本生成SQL方案)

关于

  • 首次发表日期:2024-07-15
  • Wren AI官方文档: https://docs.getwren.ai/overview/introduction
  • Wren AI Github仓库: https://github.com/Canner/WrenAI

关于Wren AI

Wren AI 是一个开源的文本生成SQL解决方案。

前提准备

由于之后会使用docker来启动服务,所以首先确保docker已经安装好了,并且网络没问题。

先克隆仓库:

git clone https://github.com/Canner/WrenAI.git

关于在Wren AI中使用自定义大模型和Embedding模型

Wren AI目前是支持自定义LLM和Embedding模型的,其官方文档 https://docs.getwren.ai/installation/custom_llm 中有提及,需要创建自己的provider类。

其中Wren AI本身已经支持和OPEN AI兼容的大模型了;但是自定义的Embedding模型方面,可能会报错,具体来说是wren-ai-service/src/providers/embedder/openai.py中的以下代码

if self.dimensions is not None:
    response = await self.client.embeddings.create(
        model=self.model, dimensions=self.dimensions, input=text_to_embed
    )
else:
    response = await self.client.embeddings.create(
        model=self.model, input=text_to_embed
    )

其中if self.dimensions is not None这个条件分支是会报错的(默认会运行这个分支),所以我的临时解决方案是注释掉它。

具体而言是在wren-ai-service/src/providers/embedder文件夹中创建一个openai_like.py文件,表示定义一个和open ai类似的embedding provider,取个名字叫做openai_like_embedder,具体的完整代码见本文附录。

配置docker环境变量等并启动服务

首先,进入docker文件夹,拷贝.env.example并重命名为.env.local

然后拷贝.env.ai.example并重命名为.env.ai,修改其中的LLM和Embedding的配置,相关部分如下:

LLM_PROVIDER=openai_llm
LLM_OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxx
LLM_OPENAI_API_BASE=http://api.siliconflow.cn/v1
GENERATION_MODEL=meta-llama/Meta-Llama-3-70B
# GENERATION_MODEL_KWARGS={"temperature": 0, "n": 1, "max_tokens": 32768, "response_format": {"type": "json_object"}}

EMBEDDER_PROVIDER=openai_like_embedder
EMBEDDING_MODEL=bge-m3
EMBEDDING_MODEL_DIMENSION=1024
EMBEDDER_OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxx
EMBEDDER_OPENAI_API_BASE=https://xxxxxxxxxxxxxxxx/v1

由于我们创建

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值