当前位置: 首页 > news >正文

Perl 调用 DeepSeek API 脚本

向 chat.deepseek.com 提问:请将这个 python 脚本翻译为 perl 语言脚本

参阅:Python 调用 DeepSeek API 完整指南

将 Python 脚本翻译为 Perl 语言脚本时,需要注意两种语言之间的语法差异。以下是将给定的 Python 脚本翻译为 Perl 的版本: test_deepseek_v1.pl 

use strict;
use warnings;
use utf8;
use JSON;
use LWP::UserAgent;
use HTTP::Request::Common;
use POSIX qw(strftime);
use Encode qw(encode decode);# 保存对话内容到文件
sub save_to_file {my ($file, $content, $is_question) = @_;my $timestamp = strftime("%Y-%m-%d %H:%M:%S", localtime);if ($is_question) {print $file "\n[$timestamp] Question:\n$content\n\n[$timestamp] Answer:\n";} else {print $file $content;}
}# 主函数
sub main {# 配置my $url = "https://api.siliconflow.cn/v1/chat/completions";my $headers = {"Content-Type" => "application/json","Authorization" => "Bearer YOUR_API_KEY"  # 替换为你的 API Key};# 打开文件用于保存对话open(my $file, '>>:encoding(UTF-8)', "conversation.txt") or die "无法打开文件: $!";while (1) {# 获取用户输入print "\n请输入您的问题 (输入 q 退出): ";my $question = <STDIN>;chomp($question);$question =~ s/^\s+|\s+$//g;if (lc($question) eq 'q') {print "程序已退出\n";last;}# 保存问题save_to_file($file, $question, 1);# 准备请求数据my $data = {"model" => "deepseek-ai/DeepSeek-V3","messages" => [{"role" => "user","content" => $question}],"stream" => JSON::true,"max_tokens" => 2048,"temperature" => 0.7,"top_p" => 0.7,"top_k" => 50,"frequency_penalty" => 0.5,"n" => 1,"response_format" => {"type" => "text"}};my $ua = LWP::UserAgent->new;my $request = POST($url, $headers, Content => encode_json($data));try {# 发送流式请求my $response = $ua->request($request);if ($response->is_success) {# 处理流式响应my @lines = split /\n/, $response->decoded_content;foreach my $line (@lines) {if ($line) {if ($line =~ /^data: /) {if ($line eq 'data: [DONE]') {next;}my $json_str = substr($line, 6);  # 去掉 'data: ' 前缀my $content = decode_json($json_str);if ($content->{choices}[0]{delta}{content}) {my $chunk = $content->{choices}[0]{delta}{content};print $chunk;print $file $chunk;$file->flush();}}}}# 添加分隔符print "\n----------------------------------------\n";print $file "\n----------------------------------------\n";$file->flush();} else {die "请求失败: " . $response->status_line;}} catch {my $error_msg = "请求错误: $_\n";print $error_msg;print $file $error_msg;$file->flush();}}close($file);
}# 执行主函数
main();

运行  cmd
chcp 65001
perl  test_deepseek_v1.pl

说明:

  1. 模块导入:Perl 使用 use 来导入模块,例如 use JSON; 和 use LWP::UserAgent;

  2. 文件操作:Perl 使用 open 和 close 来打开和关闭文件。

  3. JSON 处理:Perl 使用 JSON 模块来处理 JSON 数据。

  4. HTTP 请求:Perl 使用 LWP::UserAgent 来发送 HTTP 请求。

  5. 异常处理:Perl 使用 try 和 catch 来处理异常(需要 Try::Tiny 模块,但在这个例子中简化了异常处理)。

  6. 流式处理:Perl 通过逐行处理响应内容来模拟流式处理。

注意事项:

  • Perl 的 try 和 catch 语法需要 Try::Tiny 模块,如果没有安装,可以使用 eval 来替代。

  • Perl 的 print 和 flush 操作与 Python 类似,但需要显式调用 flush 来确保数据写入文件。

相关文章:

Perl 调用 DeepSeek API 脚本

向 chat.deepseek.com 提问&#xff1a;请将这个 python 脚本翻译为 perl 语言脚本 参阅&#xff1a;Python 调用 DeepSeek API 完整指南 将 Python 脚本翻译为 Perl 语言脚本时&#xff0c;需要注意两种语言之间的语法差异。以下是将给定的 Python 脚本翻译为 Perl 的版本&a…...

2025国家护网HVV高频面试题总结来了01(题目+回答)

网络安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 0x1 高频面试题第一套 0x2 高频面试题第二套 0x3 高频面试题第三套 0x4 高频面试题第四套 0x5 高频面…...

【前端基础】3、HTML的常用元素(h、p、img、a、iframe、div、span)、不常用元素(strong、i、code、br)

HTML结构 一个HTML包含以下部分&#xff1a; 文档类型声明html元素 head元素body元素 例&#xff08;CSDN&#xff09;&#xff1a; 一、文档类型声明 HTML最一方的文档称为&#xff1a;文档类型声明&#xff0c;用于声明文档类型。即&#xff1a;<!DOCTYPE html>…...

【前端场景题】如何应对页面请求接口的大规模并发问题

如何应对页面请求接口的大规模并发问题&#xff0c;尤其是前端方面的解决方案&#xff0c;并且需要给出详细的代码解释。首先&#xff0c;我需要仔细阅读我搜索到的资料&#xff0c;找出相关的信息&#xff0c;然后综合这些信息来形成答案。 首先看&#xff0c;它提到前端优化策…...

Sublime Text4安装、汉化

-------------2025-02-22可用---------------------- 官方网址下载&#xff1a;https://www.sublimetext.com 打开https://hexed.it 点击打开文件找到软件安装目录下的 ctrlf 查找 8079 0500 0f94 c2右边启用替换替换为:c641 0501 b200 90点击替换按钮 替换完成后 另存为本地…...

Python PDF文件拆分-详解

目录 使用工具 将PDF按页数拆分 将PDF的每一页拆分为单独的文件 将PDF按指定页数拆分 根据页码范围拆分PDF 根据指定内容拆分PDF 将PDF的一页拆分为多页 在日常生活中&#xff0c;我们常常会遇到大型的PDF文件&#xff0c;这些文件可能难以发送、管理和查阅。将PDF拆分成…...

MacDroid for Mac v2.3 安卓手机文件传输助手 支持M、Intel芯片 4.7K

MacDroid 是Mac毒搜集到的一款安卓手机文件传输助手&#xff0c;在Mac和Android设备之间传输文件。您只需要将安卓手机使用 USB 连接到 Mac 电脑上即可将安卓设备挂载为本地磁盘&#xff0c;就像编辑mac磁盘上的文件一样编辑安卓设备上的文件&#xff0c;MacDroid支持所有 Andr…...

人大金仓国产数据库与PostgreSQL

一、简介 在前面项目中&#xff0c;我们使用若依前后端分离整合人大金仓&#xff0c;在后续开发过程中&#xff0c;我们经常因为各种”不适配“问题&#xff0c;但可以感觉得到大部分问题&#xff0c;将人大金仓视为postgreSQL就能去解决大部分问题。据了解&#xff0c;Kingba…...

阿里云 Qwen2.5-Max:超大规模 MoE 模型架构和性能评估

大家好,我是大 F,深耕AI算法十余年,互联网大厂技术岗。分享AI算法干货、技术心得。 欢迎关注《大模型理论和实战》、《DeepSeek技术解析和实战》,一起探索技术的无限可能! 一、引言 Qwen2.5-Max 是阿里云通义千问团队研发的超大规模 Mixture-of-Expert(MoE)模型,旨在通…...

C++ 标准库容器的常用成员函数

目录 C 标准库容器简介 通用成员函数 1. 大小相关 size() empty() max_size() 2. 元素访问 operator[] at(size_t n) front() back() 3. 修改容器 push_back(const T& value) pop_back() clear() insert() erase() 4. 迭代器相关 begin() end() rbegi…...

MySQL双主搭建-5.7.35

文章目录 上传并安装MySQL 5.7.35双主复制的配置实例一&#xff1a;172.25.0.19&#xff1a;实例二&#xff1a;172.25.0.20&#xff1a; 配置复制用户在实例 1 &#xff08;172.25.0.19&#xff09;上执行&#xff1a;在实例 2 &#xff08;172.25.0.20&#xff09;上执行&…...

Uniapp开发微信小程序插件的一些心得

一、uniapp 开发微信小程序框架搭建 1. 通过 vue-cli 创建 uni-ap // nodejs使用18以上的版本 nvm use 18.14.1 // 安装vue-cli npm install -g vue/cli4 // 选择默认模版 vue create -p dcloudio/uni-preset-vue plugindemo // 运行 uniapp2wxpack-cli npx uniapp2wxpack --…...

Vscode通过Roo Cline接入Deepseek

文章目录 背景第一步、安装插件第二步、申请API key第三步、Vscode中配置第四步、Deepseek对话 背景 在前期介绍【IDEA通过Contince接入Deepseek】步骤和流程&#xff0c;那如何在vscode编译器中使用deepseek&#xff0c;记录下来&#xff0c;方便备查。 第一步、安装插件 在…...

不同规模企业如何精准选择AI工具: DeepSeek、Grok 和 ChatGPT 三款主流 AI 工具深度剖析与对比

本文深入探讨了最近国内外主流的 DeepSeek、Grok 和 ChatGPT 三款主流 AI 工具的技术细节、性能表现、应用场景及局限性&#xff0c;并从技术能力、功能需求、成本预算、数据安全和合规以及服务与支持五个关键维度&#xff0c;详细分析了不同规模企业在选择 AI 工具时的考量因素…...

如何有效判断与排查Java GC问题

目录 一、GC的重要性与对性能的影响 &#xff08;一&#xff09;GC对性能的影响简要分析 1.GC暂停与应用停顿 2.GC吞吐量与资源利用率 3.GC对内存管理的作用&#xff1a;资源回收 4.GC策略与优化的选择 &#xff08;二&#xff09;GC的双刃剑 二、GC性能评价标准 &…...

【笔记】用大预言模型构建专家系统

最近闲庭漫步&#xff0c;赏一赏各个AI大语言模型芳容。也趁着时间&#xff0c;把倪海夏一家的天纪和人纪视频看完了&#xff0c;感谢倪先生和现在网络的知识分享&#xff0c;受益匪浅。但是发现看完&#xff0c;很多不错的知识都不能记录在脑子里&#xff0c;那用的时候岂不是…...

Android SystemUI深度定制实战:下拉状态栏集成响铃功能开关全解析

一、功能实现全景视图 目标场景&#xff1a;在Android 14系统级ROM定制中&#xff0c;为SystemUI下拉状态栏的QuickQSPanel区域新增响铃模式切换开关&#xff0c;实现静音/响铃快速切换功能。该功能需通过三层关键改造实现&#xff1a; 二、核心实现三部曲 1. 配置注入&…...

【Python】基础语法三

> 作者&#xff1a;დ旧言~ > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;了解Python的函数、列表和数组。 > 毒鸡汤&#xff1a;有些事情&#xff0c;总是不明白&#xff0c;所以我不会坚持。早安! > 专栏选自&#xff…...

[Computer Vision]实验六:视差估计

目录 一、实验内容 二、实验过程 2.1.1 test.py文件 2.1.2 test.py文件结果与分析 2.2.1 文件代码 2.2.2 结果与分析 一、实验内容 给定左右相机图片&#xff0c;估算图片的视差/深度&#xff1b;体现极线校正&#xff08;例如打印前后极线对&#xff09;、同名点匹配…...

【 开发知识点 一 】 随机数生成器 /dev/urandom 和 /dev/random

文章目录 一、随机数生成器 是什么 ?二、为什么 需要 随机数生成器 ?三、随机数生成器 基本原理四、随机数生成器 三个输出接口五、随机生成器 应用1、简单应用2、项目应用一、随机数生成器 是什么 ? /dev/random 和 /dev/urandom 是 Linux 上的字符设备文件,它们是随机数…...

Skywire蜂窝模组TCP客户端嵌入式框架解析

1. 项目概述klevebrand-skywire-framework-tcp-client是由 Klevebrand 公司开发的轻量级嵌入式 TCP 客户端框架&#xff0c;专为 Skywire&#xff08;Airgain&#xff09;系列蜂窝调制解调器设计。该框架并非通用 TCP 协议栈实现&#xff0c;而是面向特定硬件平台的AT 指令驱动…...

74HC595移位寄存器驱动原理与CrazyHC595库深度解析

1. CrazyHC595库概述&#xff1a;面向嵌入式工程师的74HC595移位寄存器驱动深度解析74HC595是工业界最经典、应用最广泛的8位串行输入/并行输出移位寄存器芯片之一。其核心价值在于以3根GPIO线&#xff08;数据、时钟、锁存&#xff09;扩展出8个可独立控制的数字输出通道&…...

从SAP实施到微信上线:一文读懂不同类型软件公司的实施岗到底有啥区别

从SAP实施到微信上线&#xff1a;一文读懂不同类型软件公司的实施岗核心差异 刚入行的技术新人小张最近很困惑&#xff1a;同样是"软件实施工程师"岗位&#xff0c;为什么招聘JD里有的要求精通SAP模块配置&#xff0c;有的却强调微信生态部署经验&#xff1f;在面试了…...

【Python学习】海龟绘图(Turtle)

目录 一、教程概述 二、环境准备 2.1 安装Python&#xff08;已安装可跳过&#xff09; 2.2 启动海龟绘图环境 方式1&#xff1a;使用Python IDLE&#xff08;自带编辑器&#xff09; 方式2&#xff1a;使用命令行运行 三、海龟绘图核心概念 四、基础操作&#xff08;必…...

专治写作卡点!这几款 AI 续写软件,让论文写作像呼吸一样简单

写论文最怕卡壳&#xff1f;大纲想破头、续写没思路、降重改到哭&#xff0c;还怕 AI 痕迹露馅&#xff1f;2026 年这几款 AI 续写软件&#xff0c;直击本科生、研究生核心痛点&#xff0c;从选题到答辩一站式搞定&#xff0c;让写作效率翻倍&#xff01;一、PaperRed&#xff…...

从网球场到棋盘:深入对比Moravec与Forstner算子在真实影像中的表现差异与选型建议

从网球场到棋盘&#xff1a;深入对比Moravec与Forstner算子在真实影像中的表现差异与选型建议 当我们需要从一张照片中找出那些独特的"地标"时——无论是网球场的边角线还是棋盘上的交叉点——特征点提取算法就像一位经验丰富的侦探&#xff0c;用不同的策略标记出关…...

MouseClick:让重复点击成为过去的智能鼠标自动化工具

MouseClick&#xff1a;让重复点击成为过去的智能鼠标自动化工具 【免费下载链接】MouseClick &#x1f5b1;️ MouseClick &#x1f5b1;️ 是一款功能强大的鼠标连点器和管理工具&#xff0c;采用 QT Widget 开发 &#xff0c;具备跨平台兼容性 。软件界面美观 &#xff0c;操…...

突破可视化边界:Charticulator重新定义数据叙事的技术实践

突破可视化边界&#xff1a;Charticulator重新定义数据叙事的技术实践 【免费下载链接】charticulator Interactive Layout-Aware Construction of Bespoke Charts 项目地址: https://gitcode.com/gh_mirrors/ch/charticulator 在数据可视化领域&#xff0c;传统工具往往…...

DistroAV技术解析:NDI网络视频传输的OBS插件解决方案

DistroAV技术解析&#xff1a;NDI网络视频传输的OBS插件解决方案 【免费下载链接】obs-ndi DistroAV (formerly OBS-NDI): NDI integration for OBS Studio 项目地址: https://gitcode.com/gh_mirrors/ob/obs-ndi 在当今的直播和内容创作领域&#xff0c;网络视频传输技…...

当DWA遇上模糊控制:让路径规划更“聪明

基于改进动态窗口 DWA 模糊自适应调整权重的路径基于改进动态窗口 DWA 模糊自适应调整权重的路径规划算法 MATLAB 源码文档 《栅格地图可修改》 基本DWA算法能够有效地避免碰撞并尽可能接近目标点&#xff0c;但评价函数的权重因子需要根据实际情况进行调整。 为了提高DWA算法的…...