Initial commit with .gitignore

This commit is contained in:
2026-02-04 14:36:13 +08:00
commit 82b5fbf875
9 changed files with 1704 additions and 0 deletions

72
basket.py Normal file
View File

@@ -0,0 +1,72 @@
import requests
from dashvector import Client, Doc
# === 配置 ===
DASHVECTOR_API_KEY = 'sk-55x6oBXypSlPHQ8NvPHfyBABcMIMUE0407A0FCC2A11F0B9C802831A608ABB'
DASHVECTOR_ENDPOINT = 'vrs-cn-2ml4jm42o0001r.dashvector.cn-hangzhou.aliyuncs.com'
# 从 DashScope 控制台获取(不是百炼 Model Studio
DASHSCOPE_API_KEY = 'sk-d3f235925afa4e4e83d707dde04b9e52' # 👈 替换这里!
def get_embedding(text):
url = "https://dashscope.aliyuncs.com/api/v1/services/embeddings/text-embedding/text-embedding-v1"
headers = {
"Authorization": f"Bearer {DASHSCOPE_API_KEY}",
"Content-Type": "application/json"
}
data = {
"input": {"texts": [text]},
"model": "text-embedding-v1"
}
resp = requests.post(url, headers=headers, json=data)
if resp.status_code == 200:
return resp.json()["output"]["embeddings"][0]["embedding"]
else:
raise Exception(f"❌ Embedding API 错误: {resp.status_code} - {resp.text}")
# === 初始化 DashVector 客户端 ===
client = Client(api_key=DASHVECTOR_API_KEY, endpoint=DASHVECTOR_ENDPOINT)
# === 创建集合(注意维度是 1536===
collection_name = "medical_topics"
try:
client.delete(collection_name)
except:
pass
client.create(name=collection_name, dimension=1536) # text-embedding-v1 输出 1536 维
collection = client.get(collection_name)
print("✅ 集合已创建并获取")
# === 插入数据 ===
topics = [
"如何治疗阳痿、早泄和肾虚?",
"早泄可以吃哪些中药?",
"该如何治疗早泄?",
"前列腺肥大是什么原因引起的?"
]
docs = []
for i, text in enumerate(topics, 1):
emb = get_embedding(text)
docs.append(Doc(id=f"topic_{i}", vector=emb, fields={"content": text}))
resp = collection.insert(docs)
if resp.success:
print("✅ 4 条中文话题已成功插入!")
else:
print("❌ 插入失败:", resp)
exit(1)
# === 查询测试 ===
query_text = "早泄的治疗方法有哪些?"
query_vec = get_embedding(query_text)
rets = collection.query(vector=query_vec, topk=3, output_fields=["content"])
if rets.success:
print(f"\n🔍 查询 '{query_text}' 的结果:")
for doc in rets.documents:
print(f" ID: {doc.id} | 相似度: {doc.score:.4f} | 内容: {doc.fields['content']}")
else:
print("❌ 查询失败:", rets)