使用 Elasticsearch 作为 Azure OpenAI On Your Data 的向量数据库
warning:
这篇文章距离上次修改已过270天,其中的内容可能已经有所变动。
from openai import OpenAI
from datetime import datetime
import os
import json
import requests
# 配置OpenAI API密钥
openai.api_key = "你的OPENAI_API_KEY"
# 设置Elasticsearch集群的基本信息
elasticsearch_username = "你的ELASTICSEARCH_USERNAME"
elasticsearch_password = "你的ELASTICSEARCH_PASSWORD"
elasticsearch_host = "你的ELASTICSEARCH_HOST"
elasticsearch_port = "你的ELASTICSEARCH_PORT"
# 创建Elasticsearch的请求头
es_auth = (elasticsearch_username, elasticsearch_password)
es_headers = {
"Content-Type": "application/json",
"kbn-version": "7.10.0"
}
# 创建Elasticsearch的请求URL
es_url = f"https://{elasticsearch_host}:{elasticsearch_port}/_bulk"
# 读取数据并转换为OpenAI能理解的格式
with open("data.json", "r") as f:
data = json.load(f)
# 提取数据并转换为适合OpenAI的格式
documents = [
{
"_index": "documents",
"_source": {
"text": doc["text"],
"timestamp": datetime.now().isoformat()
}
}
for doc in data
]
# 将数据转换为Elasticsearch可以接受的格式
bulk_data = "\n".join(json.dumps(doc) for doc in documents)
# 发送数据到Elasticsearch
response = requests.post(es_url, headers=es_headers, auth=es_auth, data=bulk_data)
# 输出结果
print(response.json())
这段代码示例展示了如何将一个包含文档数据的JSON文件读取并转换为适合Elasticsearch的\_bulk API所需的格式,然后将其发送到Elasticsearch进行索引。这是一个简化的例子,实际应用中可能需要更多的错误处理和参数配置。
评论已关闭