泉缘泉 发表于 2025-4-10 16:15:43

使用自定义大模型来部署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
由于我们创建

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 使用自定义大模型来部署Wren AI(开源的文本生成SQL方案)