检查其他资源
- 为这个问题添加了一个非常描述性的标题。
- 使用集成搜索在LangChain文档中进行了搜索。
- 使用GitHub搜索找到了一个类似的问题,但没有找到。
- 我确信这是LangChain中的一个bug,而不是我的代码。
- 通过更新到LangChain的最新稳定版本(或特定集成包)无法解决此错误。
示例代码
def set_embed(self, query: str) -> None:
# Load model configurations
load_dotenv(self.model_conf)
# Load app configurations
config = ConfigParser(interpolation=None)
config.read('app.ini')
apim_params = config['apim']
# Set env variables
os.environ["OPENAI_API_KEY"] = apim_params['OPENAI_API_KEY']
# Set emb_model name variables
#embed_model = os.getenv('EMBEDDING_MODEL_TYPE')
embed_model = os.getenv('MODEL_TYPE_EMBEDDING')
print(embed_model)
# Set apim request parameters
params: Mapping[str, str] = {
'api-version': os.getenv('OPENAI_API_VERSION')
}
headers: Mapping[str, str] = {
'Content-Type': apim_params['CONTENT_TYPE'],
'Ocp-Apim-Subscription-Key': os.getenv('OCP-APIM-SUBSCRIPTION-KEY')
}
client = httpx.Client(
base_url = os.getenv('AZURE_OPENAI_ENDPOINT'),
params = params,
headers = headers,
verify = apim_params['CERT_PATH']
)
print(client.params)
print(client.headers)
try:
# Load embedding model
self.embed = AzureOpenAIEmbeddings(
model = 'text-embedding-ada-002',
azure_deployment=embed_model,
azure_deployment='text-embedding-ada-002',
chunk_size=2048,
http_client=client)
print (self.embed)
result = self.embed.embed_query(query)
print (f'{embed_model} model initialized')
except Exception as e:
raise Exception(f'ApimUtils-set_embed : Error while initializing embedding model - {e}')
错误信息和堆栈跟踪(如果适用)
ApimUtils-set_embed : 初始化嵌入模型时出错 - 错误代码:400 - {'statusCode': 400, 'message': "无法从传入请求中解析和估计标记。请确保传入请求是以下类型之一:'Chat Completion','Completion','Embeddings',并与当前提示估计模式'Auto'一起工作。"}
描述
在使用AzureOpenAIEmbedding类与我们的Azure APIM服务结合的Azure OpenAI服务时,它会在我们的APIM策略中中断,该策略会从请求中捕获/计算提示/完成标记。我们认为这是由于AzureOpenAIEmbedding类如何将整数列表(例如 b'{"input": 3923, 374, 279, 4611, 96462, 46295, 58917, 30, "model": "text-embedding-ada-002", "encoding_format": "base64"}' vs [str] 从查询文本中发送。
系统信息
系统信息
操作系统:Windows
OS版本:10.0.22631
Python版本:3.11.5 (tags/v3.11.5:cce6ba9, Aug 24 2023, 14:38:34) [MSC v.1936 64 bit (AMD64)]
软件包信息
langchain_core: 0.2.5
langchain: 0.2.3
langchain_community: 0.2.4
langsmith: 0.1.75
langchain_openai: 0.1.8
langchain_text_splitters: 0.2.1
2条答案
按热度按时间d4so4syb1#
我也遇到了这个问题。我设置了 azure-openai-emit-token-metric APIM API策略。当APIM设置为支持自定义指标时,会出现这个错误。当我禁用自定义指标时,这个错误就不会发生。当我直接使用
openai
python library to get embeddings 时,到目前为止没有出现错误。所以解决方法是,如果你想继续使用azure-openai-emit-token-metric
APIM API策略,可以直接使用openai python库进行嵌入。up9lanfz2#
另一个解决方法似乎很简单,只需设置
check_embedding_ctx_length=False
;请参阅 https://api.python.langchain.com/en/latest/embeddings/langchain_openai.embeddings.base.OpenAIEmbeddings.html#langchain_openai.embeddings.base.OpenAIEmbeddings.check_embedding_ctx_length