Add Cloud Tour Libo knowledge graph platform
This commit is contained in:
57
scripts/test_qwen_vl.py
Normal file
57
scripts/test_qwen_vl.py
Normal file
@@ -0,0 +1,57 @@
|
||||
"""测试通义千问多模态:URL 图片 + 本地图片 两种用法。
|
||||
|
||||
用法:
|
||||
export DASHSCOPE_API_KEY=sk-xxxx
|
||||
python scripts/test_qwen_vl.py # 跑 URL 用例
|
||||
python scripts/test_qwen_vl.py /path/to/local.jpg # 跑本地图片用例
|
||||
"""
|
||||
|
||||
import os
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
from dashscope import MultiModalConversation
|
||||
|
||||
|
||||
def call(image_ref: str, prompt: str = "详细描述这张图片,并提取里面所有可见文字。") -> None:
|
||||
resp = MultiModalConversation.call(
|
||||
model="qwen-vl-max",
|
||||
messages=[
|
||||
{
|
||||
"role": "user",
|
||||
"content": [
|
||||
{"image": image_ref},
|
||||
{"text": prompt},
|
||||
],
|
||||
}
|
||||
],
|
||||
)
|
||||
if resp.status_code != 200:
|
||||
print(f"FAIL status={resp.status_code} code={resp.code} msg={resp.message}")
|
||||
sys.exit(1)
|
||||
|
||||
# 兼容两种返回结构
|
||||
content = resp.output.choices[0].message.content
|
||||
if isinstance(content, list):
|
||||
text = "".join(seg.get("text", "") for seg in content)
|
||||
else:
|
||||
text = content
|
||||
print("OK\n" + text)
|
||||
print(f"\n[usage] {resp.usage}")
|
||||
|
||||
|
||||
def main() -> None:
|
||||
if not os.getenv("DASHSCOPE_API_KEY"):
|
||||
sys.exit("ERROR: 请先 export DASHSCOPE_API_KEY=sk-xxxx")
|
||||
|
||||
if len(sys.argv) > 1:
|
||||
path = Path(sys.argv[1]).expanduser().resolve()
|
||||
if not path.is_file():
|
||||
sys.exit(f"文件不存在: {path}")
|
||||
call(f"file://{path}")
|
||||
else:
|
||||
call("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241022/emyrja/dog_and_girl.jpeg")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user