通过shell实现终端中嵌入AI,并设置命令启动

1、首先于/usr/local/bin目录中创建ai脚本文件

cd /usr/local/bin
vim ai

2、然后填充shell代码,我这里原本设计执行命令后如果不带参数将会进入输入窗口直到输入完成按ctrl+D结束才发送请求调用ai,但是为了简便就直接设定默认带参数的命令了

#!/bin/bash
# 设置 API 密钥和 URL
API_KEY="你的密钥"
URL="https://api.deepseek.com/v1/chat/completions"
# 定义函数:调用 API 并获取回答
ask_deepseek() {
     local question="$1"
    response=$(curl -s -X POST "$URL" \
        -H "Authorization: Bearer $API_KEY" \
        -H "Content-Type: application/json" \
        -d '{
             "model": "deepseek-chat",
            "messages": [{"role": "user", "content": "'"$question"'"}]
        }')

     # 使用 jq 解析 API 响应    
   answer=$(echo "$response" | jq -r '.choices[0].message.content')

     # 输出 DeepSeek 的回答    
    echo "杂鱼AI: $answer"
 }
 # 检查是否有参数
 if [ $# -gt 0 ]; then
     # 如果有参数,将参数作为问题    
     question="$*"
     ask_deepseek "$question"
 fi

3、给予执行权限

chmod +x ai

4、调用

最后答案较长的回复等待时间会较长,原本设计了流式回复这样就可以像网页端那样使用ai了,但是shell中无法实现,只能通过shell调用python完成流式回复,但是deepseek的api好像支持的长程度有限,在回答问题时超过800个字符就噶然而止,相比得到不完整的答案只能放弃该方案,需要等待一点时间但是得到完整的答案仍然是较好的解

posted @ 2025-01-13 11:51  recool  阅读(301)  评论(0)    收藏  举报