类别归档:Python

Python is a programming language that lets you work quickly and integrate systems more effectively.

RSS feed of Python

让 AI 替你画 UML:CodeBuddy + DrawIO 工作流

为什么用 AI 画 UML

软件工程中,UML(统一建模语言)是沟通需求、设计与实现的通用语言。但传统手绘 UML 有两大痛点:绘图工具学习成本高,以及代码演进后图容易过时。本文介绍一套工作流:用 CodeBuddy(AI 编程助手)生成 drawio(.drawio / .xml)源码,再导入 app.diagrams.net 可视化编辑与导出,快速产出类图、时序图、用例图等软件工程 UML 图。

整体工作流

  1. 描述需求:向 CodeBuddy 说明要画什么图、包含哪些元素。
  2. 生成源码:让 CodeBuddy 直接输出符合 drawio XML 格式的 .drawio 文件。
  3. 导入查看:打开 app.diagrams.net ...

继续阅读

AWS AgentCore 搭 Chatbot 的真实体验:会话管理和上下文上限并非开箱即用

背景:从一次选型讨论说起

最近在评估用 AWS AgentCore 来搭一个 chatbot。官方文档把它描述成一个"企业级 agent 平台",看起来什么都有:Runtime 跑代码、Memory 管记忆、Gateway 接工具、Observability 看观测。但当我真正去核对"会话管理"和"确保上下文不超模型上限"这两个 chatbot 最核心的需求时,发现 OOTB(开箱即用)的程度和宣传里暗示的并不完全一致。这里把结论记下来,供同样在选型的人参考。

AgentCore 到底是不是 chatbot 框架?

先说定位:AgentCore 是"运行时 + 记忆 + 网关"平台,不是开箱即用的 chatbot 框架。你需要自己写 agent 的业务逻辑(跑在 AgentCore Runtime 里),它负责的是部署、扩缩容、身份认证、工具连接和可观测性。对话和会话能力由其中的 AgentCore Memory 模块提供。

也就是说,它给你的是"地基"和"水电煤",不是"精装修的房子"。对想快速拖一个聊天窗口的人来说,它偏底层;对要自己掌控 agent 行为、又要生产级运维能力的团队,它合适。 ...

继续阅读

Windows virtualenv 安装 psycopg2

访问 http://www.stickpeople.com/projects/python/win-psycopg/ 

根据Python版本和处理器版本下载相应的psycopg2安装文件到本地。

下载完毕后不要双击执行,假设安装文件放在 C:\ ,virtualenv目录为 C:\virtualenv,执行如下命令:

C:\> C:\virtualenv\Scripts\activate.bat 
(virtualenv) C:\> easy_install psycopg2-2.6.2.win32-py2.7-pg9.5.3-release.exe

Python Requests实现短网址还原

利用python-requests(http://www.python-requests.org/),只需数行代码即可实现短网址还原。

通过HTTP HEAD请求,从返回响应的头信息(headers)中取出Location字段即为短网址对应的原始网址。

Python代码:

import requests
def revertShortLink(url):
    res = requests.head(url)
    return res.headers.get('location')

代码测试:

print revertShortLink('http://t.cn/RVMAn7W')

返回结果:

https://bookshadow.com/weblog/2016/10/15/leetcode-maximum-xor-of-two-numbers-in-an-array/#0-tsina-1-85154-397232819ff9a47a7b7e80a40613cfe1

利用matplotlib绘制约数个数统计图

利用Python计算1000以内自然数的约数个数,然后通过matplotlib绘制统计图。

绘制图片为约数个数的散点图及其分布情况的条形图。

Python代码:

import collections
import matplotlib.pyplot as plt

def countDivisors(num):
    ans = 1
    x = 2
    while x * x <= num:
        cnt = 1
        while num % x == 0:
            cnt += 1
            num /= x
        ans *= ...

继续阅读