CrewAI 快速入门
安装
pip install 'crewai[tools]'
CrewAI 使用 Ollama 运行本地 LLM
.env
OPENAI_API_BASE=http://localhost:11434/v1
OPENAI_MODEL_NAME=aya:8b
OPENAI_API_KEY=NULL
agent.py
版本1
每次执行结果都不一样
from dotenv import load_dotenv
load_dotenv()
from crewai import Agent, Task, Crew
from langchain_openai import ChatOpenAI
general_agent = Agent(
role = "数学教授",
goal = """为提问数学问题的学生提供解决方案并给出答案。""",
backstory = """您是一位优秀的数学教授,喜欢以每个人都能理解的方式解决数学问题。""",
allow_delegation = False,
verbose = True
)
// ...
版本2
稳定地生成结果
大型语言模型驱动的自主代理
Application scenarios of AI agents(AI代理的应用场景)
AI代理是LLM应用的重要场景,构建代理应用将是2024年的重要技术领域。目前我们主要的智能形式有单AI代理,多AI代理,混合AI代理等三种。

Single AI Agent(单一人工智能代理)
在特定任务场景下完成的工作,比如 GitHub Copilot Chat 下的代理工作区,就是根据用户需求完成特定编程任务的一个例子。基于 LLM 的能力,单个代理可以根据任务执行不同的动作,比如需求分析、项目阅读、代码生成等。它也可以应用于智能家居和自动驾驶。
Multi-AI Agents(多人工智能代理)
这就是AI代理之间相互交互的工作。例如上述Semantic Kernel代理实现就是一个例子。脚本生成的AI代理与执行脚本的AI代理进行交互。多代理应用场景在高度协同的工作中非常有帮助,例如软件行业开发、智能生产、企业管理等。
Hybrid AI Agent(混合人工智能代理)
这就是人机交互,在同一个环境下做决策。比如智慧医疗、智慧城市等专业领域,可以利用混合智能来完成复杂的专业工作。
Intro of AI agent, & AI agent projects s
基于 LLM 的源代码安全缺陷分析
代码注入:SQL注入:MyBatis
提示词
您是一名 Java 高级软件工程师,主要任务是根据缺陷报告的信息修复软件中的漏洞。
要求
请根据缺陷报告,修复缺陷代码片断的缺陷。
要求修复后的软件不改变原有的功能。
需要给出修复后的代码片段或者修复建议。
缺陷报告 缺陷类别: 一级类: 代码注入 二级类:SQL注入:MyBatis 详细信息: SQL注入是一种数据库攻击手段。攻击者通过向应用程序提交恶意代码来改变原SQL语句的含义,进而执行任意SQL命令,达到入侵数据库乃至操作系统的目的。在Mybatis Mapper Xml中,#变量名称创建参数化查询SQL语句,不会导致SQL注入。而$变量名称直接使用SQL指令,会导致SQL注入攻击。 例如:以下代码片段采用$变量名称动态地构造并执行了SQL查询。 <!
Phi-3-vision-128k-instruct 微软开源多模态大模型
Phi-3 Vision 是一个轻量级、最先进的开放多模态模型,基于数据集构建,其中包括合成数据和经过过滤的公开网站,重点关注文本和视觉方面的高质量推理密集数据。该模型属于 Phi-3 模型系列,多模式版本可支持 128K 上下文长度(以 Token 为单位)。该模型经历了严格的增强过程,结合了监督微调和直接偏好优化,以确保精确的指令遵守和稳健的安全措施。
模型参数 4B。
预期用途
主要用例
该模型旨在广泛用于英语商业和研究用途。该模型为通用人工智能系统和应用程序提供了视觉和文本输入功能,这些系统和应用程序需要
- 内存/计算受限的环境;
- 延迟限制场景;
- 一般图像理解;
- 光学字符识别;
- 图表和表格的理解。
我们的模型旨在加速对高效语言和多模态模型的研究,作为生成人工智能驱动功能的构建块。
用例注意事项
我们的模型并非针对所有下游目的而专门设计或评估。开发人员在选择用例时应考虑语言模型的常见限制,并在特定下游用例中使用之前评估和减轻准确性、安全性和公平性,特别是对于高风险场景。开发人员应了解并遵守与其用例相关的适用法律或法规(包括隐私、贸易合规法等)。
手写文字识别

提示词:对图像文字进行识别
这段文字是一个人的自己写作,表达了对学生在学校和家庭生活中的看法。
提示词:这张图片上写了什么?
MiniCPM-Llama3-V 2.5 端侧可用的 GPT-4V 级多模态大模型
MiniCPM-Llama3-V 2.5 是 MiniCPM-V 系列的最新版本模型,基于 SigLip-400M 和 Llama3-8B-Instruct 构建,共 8B 参数量,相较于 MiniCPM-V 2.0 性能取得较大幅度提升。MiniCPM-Llama3-V 2.5 值得关注的特点包括:
- 🔥 领先的性能。 MiniCPM-Llama3-V 2.5 在综合了 11 个主流多模态大模型评测基准的 OpenCompass 榜单上平均得分 65.1,以 8B 量级的大小超过了 GPT-4V-1106、Gemini Pro、Claude 3、Qwen-VL-Max 等主流商用闭源多模态大模型,大幅超越基于Llama 3构建的其他多模态大模型。
- 💪 优秀的 OCR 能力。 MiniCPM-Llama3-V 2.5 可接受 180 万像素的任意宽高比图像输入,OCRBench 得分达到 725,超越 GPT-4o、GPT-4V、Gemini Pro、Qwen-VL-Max 等商用闭源模型,达到最佳水平。基于近期用户反馈建议,MiniCPM-Llama3-V 2.5 增强了全文 OCR 信息提取、表格图像转 markdown 等高频实用能力,并且进一步加强了指令跟随、复杂推理能力,带来更好的多模态交互体感。
CogVLM2 智谱开源多模态大模型
- 在许多关键指标上有了显著提升,例如
TextVQA,DocVQA。 - 支持 8K 文本长度。
- 支持高达 1344 * 1344 的图像分辨率。
- 提供支持中英文双语的开源模型版本。
您可以在下表中看到 CogVLM2 系列开源模型的详细信息:
| 模型名称 | cogvlm2-llama3-chat-19B | cogvlm2-llama3-chinese-chat-19B |
|---|---|---|
| 基座模型 | Meta-Llama-3-8B-Instruct | Meta-Llama-3-8B-Instruct |
| 语言 | 英文 | 中文、英文 |
| 模型大小 | 19B | 19B |
| 任务 | 图像理解,对话模型 | 图像理解,对话模型 |
| 模型链接 | 🤗 Huggingface 🤖 ModelScope 💫 Wise Model | 🤗 Huggingface 🤖 ModelScope 💫 Wise Model |
| 体验链接 | 📙 Official Page | 📙 Official Page 🤖 ModelScope |
| Int4模型 | 暂未推出 | 暂未推出 |
| 文本长度 | 8K | 8K |
| 图片分辨率 | 1344 * 1344 | 1344 * 1344 |
总结 能力非常强大 👍 OCR 已经成为基础能力。包含印刷、手写、中文、英文。 图像描述。 基于图像问答。 信息提取。包含保单、车牌、火车票、手机充值。 表格识别。包含复杂表格。
Thoughtworks 技术雷达 第30期
Thoughtworks 技术雷达
Thoughtworks 技术雷达 (Tech Radar) 是一份每半年发布一次的技术报告,涵盖了工具、技术、平台、语言和框架等方面的内容。这一知识成果来自于我们全球团队的经验,重点介绍了您可能想要在项目中探索的内容。
环的含义如下:
- 1️⃣ 采纳 (Adopt)。我们认为您应该认真考虑使用的点。
- 2️⃣ 试验 (Trial)。我们认为可以放心使用的点,但还没有达到“采纳”环中那么成熟的程度。
- 3️⃣ 评估 (Assess)。值得关注的点,但除非非常适合您的需求,否则目前可能不需要试用。
- 4️⃣ 暂缓 (Hold)。需要谨慎对待的点。
参考:
- Thoughtworks 技术雷达
- Thoughtworks 技术雷达 频繁被提及的问题
- Thoughtworks 技术雷达 第30期 2024年4月30日
- Exploring Generative AI - 探索生成式人工智能
- An example of LLM prompting for programming - LLM 提示编程的例子
技术 1️⃣ 将 CI/CD 基础设施作为一种服务 - 2023年4月 将 CI/CD 基础设施作为一种服务已经是很多元化以及成熟的方案,以至于需要自己管理整个 CI 基础设施的情况变得非常少见。
SWIFT: Scalable lightWeight Infrastructure for Fine-Tuning
简介
SWIFT 支持近200种LLM和MLLM(多模态大模型)的训练、推理、评测和部署。开发者可以直接将我们的框架应用到自己的Research和生产环境中,实现模型训练评测到应用的完整链路。我们除支持了PEFT提供的轻量训练方案外,也提供了一个完整的Adapters库以支持最新的训练技术,如NEFTune、LoRA+、LLaMA-PRO等,这个适配器库可以脱离训练脚本直接使用在自己的自定流程中。
安装
git clone https://github.com/modelscope/swift.git
cd swift
pip install -e '.[llm]'
支持的模型类型(model_type)
['chinese-alpaca-2-13b-16k', 'chinese-alpaca-2-13b', 'chinese-alpaca-2-7b-64k', 'chinese-alpaca-2-7b-16k', 'chinese-alpaca-2-7b', 'chinese-alpaca-2-1_3b', 'chinese-llama-2-13b-16k', 'chinese-llama-2-13b', 'ch
使用大型语言模型微调命名实体识别
目标
这里探索了借助大型语言模型微调进行命名实体识别的标注。
定义了一套电力领域的命名实体类型:
- Province: 省份。例如:山东省。
- City: 城市。例如:济南市、济南。
- Company: 供电公司。例如:长清区供电公司、市中供电中心。
- Substation: 供电所。例如:崮山供电所。
- Indicator: 指标。例如:投诉、意见。
- Date: 日期。例如:今天、昨天、今年、去年、本周、上周、本月、上月、3月、本季度、上季度、一季度、今年第一季度、2022年、2024年5月。
对用户的输入进行命名实体识别标注,输出的结果应该包含所有的电力领域实体类型的实例。
- 山东省菏泽巨野县供电公司麒麟供电所投诉数量
<Province>山东省</Province><City>菏泽</City><Company>巨野县供电公司</Company><Substation>麒麟供电所</Substation><Indicator>投诉</Indicator>数量
- 菏泽巨野县供电公司麒麟供电所投诉数量
<City>菏泽</City><Company>巨野县供电公司</Company><Substation>麒麟供电所</
使用大型语言模型微调命名实体识别生成
目标
这里探索了借助大型语言模型进行命名实体识别的标注,并在缺少相关类型实体的时候可以自动生成。
定义了一套电力领域的命名实体类型:
- Province: 省份。例如:山东省。
- City: 城市。例如:济南市、济南。
- Company: 供电公司。例如:长清区供电公司、市中供电中心。
- Substation: 供电所。例如:崮山供电所。
- Indicator: 指标。例如:投诉、意见。
- Date: 日期。例如:今天、昨天、今年、去年、本周、上周、本月、上月、3月、本季度、上季度、一季度、今年第一季度、2022年、2024年5月。
理想的情况下的输入可能是这样的:{DATE}山东省菏泽巨野县供电公司麒麟供电所投诉数量。
但是用户的输入是多种多样的:
- 山东省菏泽巨野县供电公司麒麟供电所投诉数量
- 菏泽巨野县供电公司麒麟供电所投诉数量
- 菏泽巨野投诉数量
- 菏泽麒麟投诉数量
- 巨野县供电公司麒麟供电所投诉数量
- 巨野麒麟投诉数量
- 巨野投诉数量
- 麒麟供电所投诉数量
- 麒麟投诉数量
通过微调后的模型可以生成如下实体标注: <Date>本月</Date><Province>山东省</Province><City>菏泽</City><Company>巨野县供电公司</Company><Substation>麒麟供电所
Next.js
- 初始化Next.js项目
首先,创建一个新的Next.js项目:
npx create-next-app next-quiz-app
cd next-quiz-app
运行
npm run dev
ESLint
npm run lint
> next-quiz-app@0.1.0 lint
> next lint
✔ No ESLint warnings or errors
使用大型语言模型进行命名实体识别
总结
- Qwen 模型的指令遵循还是差强人意,这里使用的参数应该是 72B
- 大型语言模型发挥了它的生成能力,会在原文的基础上给你增加内容,如:济南
市。 - 问题变化多样,示例也不可能覆盖所有的情况,写的越多占用的上下文长度越大。
- 在实验二中
- 明确说明
Date实体类型的值,并没有很好的识别出来,如:3月识别为Month,一季度识别为Quarter,今年识别为Year。这个跟模型有关,ChatGPT就识别的不错。
- 明确说明
- 在实验三中
- 明确说明不要增加实体类型,但还是增加了,如:
County实体类型。 - 识别的实体有重叠文字,如:
曹县,曹县供电公司。 - 位置很容易出错,一旦出错后面的实体位置都是错误的了。
- 明确说明不要增加实体类型,但还是增加了,如:
- 使用
XML标记方式比输出json结果方式效果更好。
代码 from langchain_core.output_parsers import StrOutputParser from langchain_core.prompts import PromptTemplate from langchain_core.runnables import RunnablePassthrough from langchain_community.chat_models.
LLaMA-Factory 微调 Text2SQL
git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
python -m venv env
source env/bin/activate
pip install -e .[metrics]
下载模型
git clone https://www.modelscope.cn/qwen/Qwen1.5-4B-Chat.git
自定义数据集
data/text2sql.json [ { "instruction": "You are an SQLite database expert. Help users write SQL statements based on the following table schema.
没有找到匹配的文章