免费POC, 零成本试错
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


LangChain如何使用通义千问的向量模型

发布日期:2025-08-30 08:15:02 浏览次数: 1529
作者:啃编程

微信搜一搜,关注“啃编程”

推荐语

LangChain与通义千问向量模型结合使用指南,解决常见报错问题。

核心内容:
1. 使用LangChain调用通义千问向量模型的初始代码示例
2. 分析报错原因:文本预处理问题
3. 解决方案:添加check_embedding_ctx_length参数

杨芳贤
53AI创始人/腾讯云(TVP)最具价值专家


1、问题

开始用的代码如下:

import osfrom langchain_openai import OpenAIEmbeddings,  OpenAIembeddings_model = OpenAIEmbeddings(        api_key=os.getenv("DASHSCOPE_API_KEY"),  # 换成你的API KEY        base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",        model="text-embedding-v3")embeddings = embeddings_model.embed_documents(    [        "你好!",                 "你能做什么"    ] )print(f"Embedding: {embeddings}")

执行时报错:

openai.BadRequestErrorError code400 - {   'error': {   'code''InvalidParameter''param'None   'message''<400> InternalError.Algo.InvalidParameter: Value error, contents is neither str nor list of str.: input.contents'   'type''InvalidParameter'},    'id''2aadf398-7093-9b37-be4c-c85829fce932'   'request_id''2aadf398-7093-9b37-be4c-c85829fce932'}

2、原因

文本列表 在送入 embeddings.create 之前已经被 token 化了,发送给模型的并不是文本原文

3、方案

增加参数check_embedding_ctx_length = False。最终代码如下:

import osfrom langchain_openai import OpenAIEmbeddings,  OpenAIembeddings_model = OpenAIEmbeddings(        api_key=os.getenv("DASHSCOPE_API_KEY"),  # 换成你的API KEY        base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",        model="text-embedding-v3",        check_embedding_ctx_length = False)embeddings = embeddings_model.embed_documents(    [        "你好!",                 "你能做什么"    ] )print(f"Embedding: {embeddings}")

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询