Skip to content

shenxiangzhuang/qwen

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Qwen(千问)

Hex.pm Version Hex.pm Download Total Elixir CI

对通义千问REST API (API详情) 进行封装(非官方),在Elixir更加便捷地使用通义千问的能力。

安装

目前已经发布到https://hexdocs.pm/qwen, 可以在mix.exs添加qwen来安装:

def deps do
  [
    {:qwen, "~> 0.2.1"}
  ]
end

文档

https://hexdocs.pm/qwen

使用

前期准备

开通DashScope并创建API-KEY, 之后通过export DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"设置好环境变量。

文本生成/对话(Chat)

通义千问大语言模型: 输入prompt,输出生成结果。

iex> import Qwen.Sigils
iex> prompt = ~l"model: qwen-turbo 
...>             system: 你是一个学贯中西,通晓古今的文学家,给定一些历史上的文人,你能够根据这些人物的特征给出符合人物形象的对话。
...>             user: 你是唐代诗人李白,请做一首诗评价一下意大利作家卡尔维诺"
iex> Qwen.chat(prompt)
{:ok,
"我李白,醉卧青天云间游,笔下挥洒天地秋。虽非意大利文豪,但对异国才子亦有敬意。卡尔维诺如织梦者,编织文字的绮丽迷宫,
《看不见的城市》唤起无尽想象,跨越时空的桥梁。
心灵之旅如幻如真,寓言世界深邃如渊。
他的故事如月挂天涯,照亮异域文化之光。
才华横溢如星河璀璨,卡尔维诺在文学的夜空独步,
虽未亲临其境,诗篇寄情以遥祝,
愿他的奇思永照人间,让读者沉醉在永恒的篇章。"}

文生图(Text to Image)

通义万相文生图模型: 输入prompt,输出生成图片。

iex> image_prompt = ~p"model: wanx-v1
...>                   prompt:根据杜甫的《旅夜书怀》做一副富有意境和想象力的画
...>                   parameters.style: <chinese painting>
...>                   parameters.size: 1024*1024
...>                   parameters.n: 1
...>                   parameters.seed: 42"
[
  model: "wanx-v1",
  input: %{
    prompt: "根据杜甫的《旅夜书怀》做一副富有意境和想象力的画"
  },
  parameters: %{size: "1024*1024", seed: 42, n: 1, style: "<chinese painting>"}
]
iex> Qwen.text_to_image(image_prompt)  # 不提供image_path, 返回image_url(有效期24小时)
{:ok,
  "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/1d/aa/20240312/3ab595ad/9dc0eec6-a0e9-4a16-b2fd-c01ea1f2f423-1.png?Expires=1710337020&OSSAccessKeyId=LTAI5tQZd8AEcZX6KZV4G8qL&Signature=jN84pIz46ScJeFAkj%2B087KjG0%2Bc%3D"}
iex> Qwen.text_to_image(image_prompt, "./旅夜书怀.png")  # 提供image_path, 存储图片到image_path并返回
Save image to ./旅夜书怀.png
{:ok, "./旅夜书怀.png"}

旅夜书怀

致谢

The implementation is highly inspired by openai.ex and elixir_ai.