openJiuwen——时事新闻工作的代码与本地时间实操
本文记录了服务器IP和端口变更后处理工作流的全过程。首先测试了华为大模型的智能体功能,成功获取旅游规划响应。随后尝试添加天气预报插件未果,转而开发获取北京时间并查询新闻的工作流。通过调整Python代码解决运行环境问题,最终实现按时段获取新闻的功能并成功发布。文中包含详细的操作步骤、代码片段和效果截图,完整呈现了工作流从开发到部署的技术实现过程。
前言
我今天换了服务器 IP 地址更换了一下,服务器的端口号也换了,可以在下图看到,上次服务器的端口号是1049,这次换成1057了,这个不太理解,是随机设计的?
注: 端口更换在 0.1.2 版本已经默认为 3000,这回更换服务器再也不需要改端口了。
代码沙箱支持动态增加引用依赖在规划中,后面也会上线的;

我们这次依然来处理工作流,需要深入搞定一下。

引入大模型
这个步骤可以参考第二篇文章,直接引入华为的大模型即可。

为默认应用设置模型
他这里有一个默认的智能体,叫做出游助手,我们先来设置一下他的模型。

点击设置模型

我们来基础测试一下。
例如:我想去大理玩。

返回的具体信息:
非常乐意为您规划大理之旅!大理是一座风花雪月的浪漫古城,非常适合休闲度假。为了给您量身定制一份详尽可行的规划,我需要了解一些更具体的信息。
请您提供以下细节,这将帮助我为您打造最合适的行程:
出行时间:您计划什么时候出发?行程一共几天?(例如:6月15日-6月18日,共4天)
同行人员:您是一个人出行,还是与朋友、情侣或家人(请说明是否有老人或小孩)一起?
总预算:您为这次旅行设想的每人总预算是多少?(例如:人均3000元)
兴趣偏好
:您对哪些活动更感兴趣?
- A. 自然风光(苍山徒步、洱海骑行)
- B. 历史文化(大理古城、崇圣寺三塔)
- C. 休闲放松(客栈发呆、咖啡厅观景)
- D. 美食探索(品尝白族特色菜、小吃)
- E. 其他(请具体说明)
住宿偏好
:您更喜欢住在哪里?
- A. 大理古城内(热闹、方便)
- B. 洱海边的海景客栈(风景好、相对安静)
- C. 双廊或喜洲等古镇(体验不同风情)
一旦您提供了这些信息,我将立即为您生成一份结构清晰、包含预算和备选方案的详细出游规划。
现在能确定我们的大模型是完全没有问题的,接下来继续搞工作流。
插件市场
我在插件市场里面看到了个服务,看着是一个天气预报的服务,先下载喽,看看这个示例。

这个示例给了工作流的基础编排,我们能知道原来是这样做的工作流。

工作流1
我们来写一个根据北京时间来获取最新的新闻。

根据代码来获取具体时间。
我这里准备了一段代码,是获取当前时间的。
import pytz
from datetime import datetime, timedelta
class NTPClient:
"""
获取北京时间类,直接使用本地时间转换为北京时间(东八区)
"""
@staticmethod
def get_time():
"""
获取当前北京时间
:return: 格式化的北京时间字符串,格式为 "YYYY-MM-DD HH:MM:SS"
"""
# 获取当前UTC时间
utc_now = datetime.utcnow()
# 设置北京时区(东八区)
beijing_tz = pytz.timezone('Asia/Shanghai')
# 将UTC时间转换为北京时间
beijing_time = utc_now.replace(tzinfo=pytz.UTC).astimezone(beijing_tz)
# 格式化为字符串并返回
return beijing_time.strftime("%Y-%m-%d %H:%M:%S")
@staticmethod
def increment_time_string(time_str, seconds=1):
"""
递增时间字符串
:param time_str: 时间字符串
:param seconds: 要递增的秒数,默认为1秒
:return: 递增后的时间字符串
"""
dt = datetime.strptime(time_str, "%Y-%m-%d %H:%M:%S")
new_dt = dt + timedelta(seconds=seconds)
return new_dt.strftime("%Y-%m-%d %H:%M:%S")
# 测试代码
if __name__ == "__main__":
client = NTPClient()
beijing_time = client.get_time()
print(f"当前北京时间: {beijing_time}")
本地获取成功:

搞到工作流中试试

工作流运行代码的环境问题
这里我们可以看到运行的时候由于外部引入的库没有下载导致无法进行下载,那么这个东西在哪下载呢,我是没找到。
我返回到服务器,下载了一下,也是不行。

获取本地时间的代码
看好具体的格式,还有返回的变量名,一定要匹配。
def main(args):
"""
获取当前本地时间
:param args: 参数对象,包含params字典
:return: 包含时间字符串的字典
"""
from datetime import datetime, timedelta
# 直接获取本地系统时间
local_time = datetime.now()
# 格式化为字符串
time_str = local_time.strftime("%Y-%m-%d %H:%M:%S")
# 返回结果字典
return {'beijing_time': time_str}
运行效果:

设计工作流
工作流这里内容还不多,所以操作起来不麻烦。

获取新闻效果:

具体新闻信息:
根据您提供的时间戳,当前是 2025年7月24日 星期四 下午3:45,以下是近期(7月23日至24日)值得关注的主要新闻摘要: — ### 🔬 科技前沿 1. 中国航天员完成首次月球基地模拟实验 - 7月23日,中国载人航天工程办公室宣布,神舟二十号乘组在“月球科研站”模拟舱内成功完成为期30天的封闭实验,为未来载人登月任务提供关键技术验证。 2. AI大模型“智脑2.0”通过国家安全评估 - 7月24日,国内首个千亿参数级AI大模型获准在金融、医疗等领域试点应用,强调数据隐私与伦理合规。 — ### 🌍 国际动态 1. 第33届夏季奥运会开幕在即 - 巴黎奥运会将于7月26日开幕,中国代表团已抵达法国,乒乓球、跳水等项目被视为夺金重点。 2. 全球首条“超级高铁”启动测试 - 阿联酋宣布启动时速1000公里的真空管道磁悬浮列车试验,中国企业与德国技术团队参与合作。 — ### 💡 社会民生 1. 全国多地推出高温补贴新规 - 针对近期持续高温,北京、上海等地明确户外劳动者高温津贴标准,最高每日补贴200元。 2. “智慧养老”试点城市扩容 - 民政部新增15个城市开展AI助老设备普及项目,通过智能穿戴设备实时监测老年人健康数据。 — 如需更具体领域的新闻(如财经、娱乐等),可进一步提出需求! 📰
成功了,然后我们发布一下。

工作流2
我们根据工作流1返回的数据进行html加工。

直接引入工作流1的beijing_time_news。

引入效果,再重建一个大模型,用于加工新闻文本。

工作内容:
根据{{input}}的信息进行html美化加工
返回的内容属于新闻信息
使用的外部链接一定要是国内的,否则无法加载
最终返回完整的html代码
效果测试
运行后能看到返回的所有代码:

可以看到这个服务器的时间是7月15日,看来没有ntplib来获取时间是不行啊。

把这个代码运行起来。

效果还不错。
总结
本文主要对代码功能做了一个基础测试,跑的是python代码,发现问题是无法调用外部的库,其实可以尝试一下用js来试试,可以在后面进行具体测试,每个服务器的时间不一样,获取的时间有所不同,所以还是需要使用外部的时间来处理,不能用本地时间。
工作流的功能我们已经掌握了六个了,学习还要继续。

有兴趣的快去试试吧:
openJiuwen 项目核心组件:
●Agent Studio(智能体工作室):
https://atomgit.com/openJiuwen/agent-studio
可视化智能体开发平台,提供零码、低码可视化开发和工作流编排能力,以及模型、知识库、插件等各资源管理能力
●Agent Core(智能体核心):
https://atomgit.com/openJiuwen/agent-core
智能体核心引擎,提供Agent开发、运行、调优与演进相关的全套SDK能力
更多推荐



所有评论(0)