指南
- 策略
- 代理
- 团队
- 流程
- 高级
工具
- AI Mind Tool
- Apify Actors
- Bedrock Invoke Agent Tool
- Bedrock Knowledge Base Retriever
- Brave Search
- Browserbase Web Loader
- Code Docs RAG Search
- Code Interpreter
- Composio Tool
- CSV RAG Search
- DALL-E Tool
- Directory RAG Search
- Directory Read
- DOCX RAG Search
- EXA Search Web Loader
- File Read
- File Write
- Firecrawl Crawl Website
- Firecrawl Scrape Website
- Firecrawl Search
- Github Search
- Hyperbrowser Load Tool
- Linkup Search Tool
- LlamaIndex Tool
- LangChain Tool
- Google Serper Search
- S3 Reader Tool
- S3 Writer Tool
- Scrapegraph Scrape Tool
- Scrape Element From Website Tool
- JSON RAG Search
- MDX RAG Search
- MySQL RAG Search
- MultiOn Tool
- NL2SQL Tool
- Patronus Evaluation Tools
- PDF RAG Search
- PG RAG Search
- Qdrant Vector Search Tool
- RAG Tool
- Scrape Website
- Scrapfly Scrape Website Tool
- Selenium Scraper
- Snowflake Search Tool
- Spider Scraper
- Stagehand Tool
- TXT RAG Search
- Vision Tool
- Weaviate Vector Search
- Website RAG Search
- XML RAG Search
- YouTube Channel RAG Search
- YouTube Video RAG Search
代理监控与可观测性
学习
遥测
大型语言模型
在 CrewAI 项目中配置和使用大型语言模型 (LLMs) 的综合指南
CrewAI 通过 LiteLLM 与多个大型语言模型提供商集成,让您可以灵活地为特定用例选择合适的模型。本指南将帮助您了解如何在 CrewAI 项目中配置和使用不同的大型语言模型提供商。
什么是大型语言模型?
大型语言模型 (LLMs) 是 CrewAI 代理背后的核心智能。它们使代理能够理解上下文、做出决策并生成类似人类的响应。以下是您需要了解的内容:
大型语言模型基础知识
大型语言模型是经过海量文本数据训练的 AI 系统。它们为您的 CrewAI 代理提供智能,使其能够理解和生成类似人类的文本。
上下文窗口
上下文窗口决定了大型语言模型一次可以处理多少文本。更大的窗口(例如 128K tokens)允许更多上下文,但可能更昂贵且速度较慢。
温度
温度(0.0 到 1.0)控制响应的随机性。较低的值(例如 0.2)会产生更聚焦、确定性的输出,而较高的值(例如 0.8)会增加创造性和可变性。
提供商选择
每个大型语言模型提供商(例如 OpenAI、Anthropic、Google)都提供具有不同能力、定价和功能的模型。根据您对准确性、速度和成本的需求进行选择。
设置您的大型语言模型
在 CrewAI 代码中有不同的位置可以指定要使用的模型。一旦指定了使用的模型,您需要为使用的每个模型提供商提供配置(例如 API 密钥)。有关您的提供商,请参阅提供商配置示例部分。
最简单的入门方式。直接在您的环境中设置模型,通过 .env
文件或在您的应用代码中。如果您使用 crewai create
引导您的项目,则已经设置好了。
MODEL=model-id # e.g. gpt-4o, gemini-2.0-flash, claude-3-sonnet-...
# Be sure to set your API keys here too. See the Provider
# section below.
切勿将 API 密钥提交到版本控制。请使用环境变量文件 (.env) 或您的系统秘密管理。
最简单的入门方式。直接在您的环境中设置模型,通过 .env
文件或在您的应用代码中。如果您使用 crewai create
引导您的项目,则已经设置好了。
MODEL=model-id # e.g. gpt-4o, gemini-2.0-flash, claude-3-sonnet-...
# Be sure to set your API keys here too. See the Provider
# section below.
切勿将 API 密钥提交到版本控制。请使用环境变量文件 (.env) 或您的系统秘密管理。
创建一个 YAML 文件来定义您的代理配置。此方法非常适合版本控制和团队协作
researcher:
role: Research Specialist
goal: Conduct comprehensive research and analysis
backstory: A dedicated research professional with years of experience
verbose: true
llm: provider/model-id # e.g. openai/gpt-4o, google/gemini-2.0-flash, anthropic/claude...
# (see provider configuration examples below for more)
YAML 配置允许您
- 版本控制您的代理设置
- 轻松切换不同的模型
- 在团队成员之间共享配置
- 记录模型选择及其目的
为了获得最大灵活性,请直接在您的 Python 代码中配置大型语言模型
from crewai import LLM
# Basic configuration
llm = LLM(model="model-id-here") # gpt-4o, gemini-2.0-flash, anthropic/claude...
# Advanced configuration with detailed parameters
llm = LLM(
model="model-id-here", # gpt-4o, gemini-2.0-flash, anthropic/claude...
temperature=0.7, # Higher for more creative outputs
timeout=120, # Seconds to wait for response
max_tokens=4000, # Maximum length of response
top_p=0.9, # Nucleus sampling parameter
frequency_penalty=0.1 , # Reduce repetition
presence_penalty=0.1, # Encourage topic diversity
response_format={"type": "json"}, # For structured outputs
seed=42 # For reproducible results
)
参数说明
temperature
:控制随机性 (0.0-1.0)timeout
:响应的最大等待时间max_tokens
:限制响应长度top_p
:温度的替代采样方法frequency_penalty
:减少单词重复presence_penalty
:鼓励新话题response_format
:指定输出结构seed
:确保输出一致
提供商配置示例
CrewAI 支持多种大型语言模型提供商,每个提供商都提供独特的功能、身份验证方法和模型能力。在本节中,您将找到详细的示例,帮助您选择、配置和优化最适合您项目需求的大型语言模型。
在您的 .env
文件中设置以下环境变量
# Required
OPENAI_API_KEY=sk-...
# Optional
OPENAI_API_BASE=<custom-base-url>
OPENAI_ORGANIZATION=<your-org-id>
在您的 CrewAI 项目中的使用示例
from crewai import LLM
llm = LLM(
model="openai/gpt-4", # call model by provider/model_name
temperature=0.8,
max_tokens=150,
top_p=0.9,
frequency_penalty=0.1,
presence_penalty=0.1,
stop=["END"],
seed=42
)
OpenAI 是领先的大型语言模型提供商之一,提供广泛的模型和功能。
模型 | 上下文窗口 | 最佳用途 |
---|---|---|
GPT-4 | 8,192 tokens | 高精度任务,复杂推理 |
GPT-4 Turbo | 128,000 tokens | 长篇内容,文档分析 |
GPT-4o & GPT-4o-mini | 128,000 tokens | 高性价比的大上下文处理 |
o3-mini | 200,000 tokens | 快速推理,复杂推理 |
o1-mini | 128,000 tokens | 快速推理,复杂推理 |
o1-preview | 128,000 tokens | 快速推理,复杂推理 |
o1 | 200,000 tokens | 快速推理,复杂推理 |
# Required
ANTHROPIC_API_KEY=sk-ant-...
# Optional
ANTHROPIC_API_BASE=<custom-base-url>
在您的 CrewAI 项目中的使用示例
llm = LLM(
model="anthropic/claude-3-sonnet-20240229-v1:0",
temperature=0.7
)
在您的 .env
文件中设置您的 API 密钥。如果您需要密钥或查找现有密钥,请访问 AI Studio。
# https://ai.google.dev/gemini-api/docs/api-key
GEMINI_API_KEY=<your-api-key>
在您的 CrewAI 项目中的使用示例
from crewai import LLM
llm = LLM(
model="gemini/gemini-2.0-flash",
temperature=0.7,
)
Gemini 模型
Google 提供了一系列针对不同用例优化的强大模型。
模型 | 上下文窗口 | 最佳用途 |
---|---|---|
gemini-2.5-flash-preview-04-17 | 100万 tokens | 自适应思维,成本效益 |
gemini-2.5-pro-preview-05-06 | 100万 tokens | 增强的思维和推理能力,多模态理解,高级编码等 |
gemini-2.0-flash | 100万 tokens | 下一代功能,速度,思维能力和实时流处理 |
gemini-2.0-flash-lite | 100万 tokens | 成本效益和低延迟 |
gemini-1.5-flash | 100万 tokens | 平衡的多模态模型,适用于大多数任务 |
gemini-1.5-flash-8B | 100万 tokens | 速度最快,成本最高效,适用于高频任务 |
gemini-1.5-pro | 200万 tokens | 性能最佳,适用于各种推理任务,包括逻辑推理、编码和创意协作 |
完整的模型列表可在Gemini 模型文档中找到。
Gemma
Gemini API 也允许您使用您的 API 密钥访问托管在 Google 基础设施上的Gemma 模型。
模型 | 上下文窗口 |
---|---|
gemma-3-1b-it | 32k tokens |
gemma-3-4b-it | 32k tokens |
gemma-3-12b-it | 32k tokens |
gemma-3-27b-it | 128k tokens |
从您的 Google Cloud Console 获取凭据并保存到 JSON 文件,然后使用以下代码加载
import json
file_path = 'path/to/vertex_ai_service_account.json'
# Load the JSON file
with open(file_path, 'r') as file:
vertex_credentials = json.load(file)
# Convert the credentials to a JSON string
vertex_credentials_json = json.dumps(vertex_credentials)
在您的 CrewAI 项目中的使用示例
from crewai import LLM
llm = LLM(
model="gemini/gemini-1.5-pro-latest",
temperature=0.7,
vertex_credentials=vertex_credentials_json
)
Google 提供了一系列针对不同用例优化的强大模型
模型 | 上下文窗口 | 最佳用途 |
---|---|---|
gemini-2.5-flash-preview-04-17 | 100万 tokens | 自适应思维,成本效益 |
gemini-2.5-pro-preview-05-06 | 100万 tokens | 增强的思维和推理能力,多模态理解,高级编码等 |
gemini-2.0-flash | 100万 tokens | 下一代功能,速度,思维能力和实时流处理 |
gemini-2.0-flash-lite | 100万 tokens | 成本效益和低延迟 |
gemini-1.5-flash | 100万 tokens | 平衡的多模态模型,适用于大多数任务 |
gemini-1.5-flash-8B | 100万 tokens | 速度最快,成本最高效,适用于高频任务 |
gemini-1.5-pro | 200万 tokens | 性能最佳,适用于各种推理任务,包括逻辑推理、编码和创意协作 |
# Required
AZURE_API_KEY=<your-api-key>
AZURE_API_BASE=<your-resource-url>
AZURE_API_VERSION=<api-version>
# Optional
AZURE_AD_TOKEN=<your-azure-ad-token>
AZURE_API_TYPE=<your-azure-api-type>
在您的 CrewAI 项目中的使用示例
llm = LLM(
model="azure/gpt-4",
api_version="2023-05-15"
)
AWS_ACCESS_KEY_ID=<your-access-key>
AWS_SECRET_ACCESS_KEY=<your-secret-key>
AWS_DEFAULT_REGION=<your-region>
在您的 CrewAI 项目中的使用示例
llm = LLM(
model="bedrock/anthropic.claude-3-sonnet-20240229-v1:0"
)
在使用 Amazon Bedrock 之前,请确保您的环境中已安装 boto3
Amazon Bedrock 是一项托管服务,通过统一的 API 提供对顶级 AI 公司多个基础模型的访问,从而实现安全、负责任的 AI 应用开发。
模型 | 上下文窗口 | 最佳用途 |
---|---|---|
Amazon Nova Pro | 高达 300k tokens | 高性能,在各种任务中平衡准确性、速度和成本效益的模型。 |
Amazon Nova Micro | 高达 128k tokens | 高性能、高性价比的纯文本模型,针对最低延迟响应进行了优化。 |
Amazon Nova Lite | 高达 300k tokens | 高性能、经济实惠的多模态处理,适用于图像、视频和文本,具有实时能力。 |
Claude 3.7 Sonnet | 高达 128k tokens | 高性能,最适合复杂推理、编码和 AI 代理 |
Claude 3.5 Sonnet v2 | 高达 200k tokens | 最先进的模型,专门用于软件工程、代理能力和计算机交互,成本经过优化。 |
Claude 3.5 Sonnet | 高达 200k tokens | 高性能模型,在各种任务中提供卓越的智能和推理能力,实现最佳的速度-成本平衡。 |
Claude 3.5 Haiku | 高达 200k tokens | 快速、紧凑的多模态模型,针对快速响应和无缝的人类互动进行了优化 |
Claude 3 Sonnet | 高达 200k tokens | 平衡智能和速度的多模态模型,适用于高吞吐量部署。 |
Claude 3 Haiku | 高达 200k tokens | 紧凑、高速的多模态模型,针对快速响应和自然对话交互进行了优化 |
Claude 3 Opus | 高达 200k tokens | 最先进的多模态模型,擅长复杂任务,具有类人推理和卓越的上下文理解能力。 |
Claude 2.1 | 高达 200k tokens | 增强版本,具有扩展的上下文窗口、更高的可靠性,并减少了长篇内容和 RAG 应用中的幻觉 |
Claude | 高达 100k tokens | 通用模型,擅长复杂的对话、创意内容和精确的指令遵循。 |
Claude Instant | 高达 100k tokens | 快速、高性价比的模型,适用于日常任务,如对话、分析、摘要和文档问答 |
Llama 3.1 405B Instruct | 高达 128k tokens | 高级大型语言模型,用于合成数据生成、精炼以及聊天机器人、编码和领域特定任务的推理。 |
Llama 3.1 70B Instruct | 高达 128k tokens | 通过卓越的上下文理解、推理和文本生成能力支持复杂对话。 |
Llama 3.1 8B Instruct | 高达 128k tokens | 具有语言理解、卓越推理和文本生成能力的最先进模型。 |
Llama 3 70B Instruct | 高达 8k tokens | 通过卓越的上下文理解、推理和文本生成能力支持复杂对话。 |
Llama 3 8B Instruct | 高达 8k tokens | 具有语言理解、卓越推理和文本生成能力的最先进大型语言模型。 |
Titan Text G1 - Lite | 高达 4k tokens | 轻量级、高性价比模型,针对英语任务和微调进行了优化,重点关注摘要和内容生成。 |
Titan Text G1 - Express | 高达 8k tokens | 通用模型,适用于一般语言任务、聊天和 RAG 应用,支持英语和 100 多种语言。 |
Cohere Command | 高达 4k tokens | 专门用于遵循用户命令并提供实际企业解决方案的模型。 |
Jurassic-2 Mid | 高达 8,191 tokens | 高性价比模型,在问答、摘要和内容生成等多种语言任务中平衡质量和可负担性。 |
Jurassic-2 Ultra | 高达 8,191 tokens | 用于高级文本生成和理解的模型,擅长分析和内容创建等复杂任务。 |
Jamba-Instruct | 高达 256k tokens | 具有扩展上下文窗口的模型,针对高性价比文本生成、摘要和问答进行了优化。 |
Mistral 7B Instruct | 高达 32k tokens | 此大型语言模型遵循指令、完成请求并生成创意文本。 |
Mistral 8x7B Instruct | 高达 32k tokens | 一个 MOE 大型语言模型,遵循指令、完成请求并生成创意文本。 |
AWS_ACCESS_KEY_ID=<your-access-key>
AWS_SECRET_ACCESS_KEY=<your-secret-key>
AWS_DEFAULT_REGION=<your-region>
在您的 CrewAI 项目中的使用示例
llm = LLM(
model="sagemaker/<my-endpoint>"
)
在您的 .env
文件中设置以下环境变量
MISTRAL_API_KEY=<your-api-key>
在您的 CrewAI 项目中的使用示例
llm = LLM(
model="mistral/mistral-large-latest",
temperature=0.7
)
在您的 .env
文件中设置以下环境变量
NVIDIA_API_KEY=<your-api-key>
在您的 CrewAI 项目中的使用示例
llm = LLM(
model="nvidia_nim/meta/llama3-70b-instruct",
temperature=0.7
)
Nvidia NIM 提供了一套全面的模型,适用于各种用例,从通用任务到专业应用。
模型 | 上下文窗口 | 最佳用途 |
---|---|---|
nvidia/mistral-nemo-minitron-8b-8k-instruct | 8,192 tokens | 最先进的小型语言模型,为聊天机器人、虚拟助手和内容生成提供卓越的准确性。 |
nvidia/nemotron-4-mini-hindi-4b-instruct | 4,096 tokens | 一个双语印地语-英语小型语言模型,用于设备端推理,专门为印地语定制。 |
nvidia/llama-3.1-nemotron-70b-instruct | 128k tokens | 针对增强响应的实用性进行了定制 |
nvidia/llama3-chatqa-1.5-8b | 128k tokens | 高级大型语言模型,为聊天机器人和搜索引擎生成高质量、上下文感知的响应。 |
nvidia/llama3-chatqa-1.5-70b | 128k tokens | 高级大型语言模型,为聊天机器人和搜索引擎生成高质量、上下文感知的响应。 |
nvidia/vila | 128k tokens | 多模态视觉-语言模型,理解文本/图像/视频并创建信息丰富的响应 |
nvidia/neva-22 | 4,096 tokens | 多模态视觉-语言模型,理解文本/图像并生成信息丰富的响应 |
nvidia/nemotron-mini-4b-instruct | 8,192 tokens | 通用任务 |
nvidia/usdcode-llama3-70b-instruct | 128k tokens | 最先进的大型语言模型,回答 OpenUSD 知识查询并生成 USD-Python 代码。 |
nvidia/nemotron-4-340b-instruct | 4,096 tokens | 创建模拟真实世界数据特征的多样化合成数据。 |
meta/codellama-70b | 100k tokens | 能够从自然语言生成代码,反之亦然的大型语言模型。 |
meta/llama2-70b | 4,096 tokens | 尖端大型语言 AI 模型,能够响应提示生成文本和代码。 |
meta/llama3-8b-instruct | 8,192 tokens | 具有语言理解、卓越推理和文本生成能力的最先进大型语言模型。 |
meta/llama3-70b-instruct | 8,192 tokens | 通过卓越的上下文理解、推理和文本生成能力支持复杂对话。 |
meta/llama-3.1-8b-instruct | 128k tokens | 具有语言理解、卓越推理和文本生成能力的最先进模型。 |
meta/llama-3.1-70b-instruct | 128k tokens | 通过卓越的上下文理解、推理和文本生成能力支持复杂对话。 |
meta/llama-3.1-405b-instruct | 128k tokens | 高级大型语言模型,用于合成数据生成、精炼以及聊天机器人、编码和领域特定任务的推理。 |
meta/llama-3.2-1b-instruct | 128k tokens | 具有语言理解、卓越推理和文本生成能力的最先进小型语言模型。 |
meta/llama-3.2-3b-instruct | 128k tokens | 具有语言理解、卓越推理和文本生成能力的最先进小型语言模型。 |
meta/llama-3.2-11b-vision-instruct | 128k tokens | 具有语言理解、卓越推理和文本生成能力的最先进小型语言模型。 |
meta/llama-3.2-90b-vision-instruct | 128k tokens | 具有语言理解、卓越推理和文本生成能力的最先进小型语言模型。 |
google/gemma-7b | 8,192 tokens | 尖端文本生成模型,用于文本理解、转换和代码生成。 |
google/gemma-2b | 8,192 tokens | 尖端文本生成模型,用于文本理解、转换和代码生成。 |
google/codegemma-7b | 8,192 tokens | 基于 Google Gemma-7B 构建的尖端模型,专门用于代码生成和代码完成。 |
google/codegemma-1.1-7b | 8,192 tokens | 用于代码生成、完成、推理和指令遵循的高级编程模型。 |
google/recurrentgemma-2b | 8,192 tokens | 基于新型循环架构的语言模型,用于在生成长序列时实现更快的推理。 |
google/gemma-2-9b-it | 8,192 tokens | 尖端文本生成模型,用于文本理解、转换和代码生成。 |
google/gemma-2-27b-it | 8,192 tokens | 尖端文本生成模型,用于文本理解、转换和代码生成。 |
google/gemma-2-2b-it | 8,192 tokens | 尖端文本生成模型,用于文本理解、转换和代码生成。 |
google/deplot | 512 tokens | 一次性视觉语言理解模型,将图表图像转换为表格。 |
google/paligemma | 8,192 tokens | 视觉语言模型,善于理解文本和视觉输入,产生信息丰富的响应。 |
mistralai/mistral-7b-instruct-v0.2 | 32k tokens | 此大型语言模型遵循指令、完成请求并生成创意文本。 |
mistralai/mixtral-8x7b-instruct-v0.1 | 8,192 tokens | 一个 MOE 大型语言模型,遵循指令、完成请求并生成创意文本。 |
mistralai/mistral-large | 4,096 tokens | 创建模拟真实世界数据特征的多样化合成数据。 |
mistralai/mixtral-8x22b-instruct-v0.1 | 8,192 tokens | 创建模拟真实世界数据特征的多样化合成数据。 |
mistralai/mistral-7b-instruct-v0.3 | 32k tokens | 此大型语言模型遵循指令、完成请求并生成创意文本。 |
nv-mistralai/mistral-nemo-12b-instruct | 128k tokens | 最先进的语言模型,用于推理、代码、多语言任务;可在单个 GPU 上运行。 |
mistralai/mamba-codestral-7b-v0.1 | 256k tokens | 用于在各种编程语言和任务中编写和与代码交互的模型。 |
microsoft/phi-3-mini-128k-instruct | 128K tokens | 轻量级、最先进的开源大型语言模型,具有强大的数学和逻辑推理能力。 |
microsoft/phi-3-mini-4k-instruct | 4,096 tokens | 轻量级、最先进的开源大型语言模型,具有强大的数学和逻辑推理能力。 |
microsoft/phi-3-small-8k-instruct | 8,192 tokens | 轻量级、最先进的开源大型语言模型,具有强大的数学和逻辑推理能力。 |
microsoft/phi-3-small-128k-instruct | 128K tokens | 轻量级、最先进的开源大型语言模型,具有强大的数学和逻辑推理能力。 |
microsoft/phi-3-medium-4k-instruct | 4,096 tokens | 轻量级、最先进的开源大型语言模型,具有强大的数学和逻辑推理能力。 |
microsoft/phi-3-medium-128k-instruct | 128K tokens | 轻量级、最先进的开源大型语言模型,具有强大的数学和逻辑推理能力。 |
microsoft/phi-3.5-mini-instruct | 128K tokens | 轻量级多语言大型语言模型,在延迟受限、内存/计算约束的环境中驱动 AI 应用 |
microsoft/phi-3.5-moe-instruct | 128K tokens | 基于专家混合架构的高级大型语言模型,可提供计算高效的内容生成 |
microsoft/kosmos-2 | 1,024 tokens | 突破性的多模态模型,旨在理解图像中的视觉元素并进行推理。 |
microsoft/phi-3-vision-128k-instruct | 128k tokens | 尖端开源多模态模型,擅长从图像中进行高质量推理。 |
microsoft/phi-3.5-vision-instruct | 128k tokens | 尖端开源多模态模型,擅长从图像中进行高质量推理。 |
databricks/dbrx-instruct | 12k tokens | 一种通用大型语言模型,在语言理解、编码和 RAG 方面具有最先进的性能。 |
snowflake/arctic | 1,024 tokens | 为专注于 SQL 生成和编码的企业应用提供高效率推理。 |
aisingapore/sea-lion-7b-instruct | 4,096 tokens | 代表和服务东南亚语言和文化多样性的大型语言模型 |
ibm/granite-8b-code-instruct | 4,096 tokens | 用于代码生成、完成、解释和多轮转换的软件编程大型语言模型。 |
ibm/granite-34b-code-instruct | 8,192 tokens | 用于代码生成、完成、解释和多轮转换的软件编程大型语言模型。 |
ibm/granite-3.0-8b-instruct | 4,096 tokens | 支持 RAG、摘要、分类、代码和代理式 AI 的高级小型语言模型 |
ibm/granite-3.0-3b-a800m-instruct | 4,096 tokens | 高效的专家混合模型,用于 RAG、摘要、实体提取和分类 |
mediatek/breeze-7b-instruct | 4,096 tokens | 创建模拟真实世界数据特征的多样化合成数据。 |
upstage/solar-10.7b-instruct | 4,096 tokens | 在 NLP 任务中表现出色,尤其是在指令遵循、推理和数学方面。 |
writer/palmyra-med-70b-32k | 32k tokens | 在医疗领域提供准确、上下文相关响应的领先大型语言模型。 |
writer/palmyra-med-70b | 32k tokens | 在医疗领域提供准确、上下文相关响应的领先大型语言模型。 |
writer/palmyra-fin-70b-32k | 32k tokens | 专门用于金融分析、报告和数据处理的大型语言模型 |
01-ai/yi-large | 32k tokens | 在英语和中文上训练的强大模型,适用于包括聊天机器人和创意写作在内的多种任务。 |
deepseek-ai/deepseek-coder-6.7b-instruct | 2k tokens | 功能强大的编码模型,提供代码生成、完成和填充的高级能力 |
rakuten/rakutenai-7b-instruct | 1,024 tokens | 具有语言理解、卓越推理和文本生成能力的最先进大型语言模型。 |
rakuten/rakutenai-7b-chat | 1,024 tokens | 具有语言理解、卓越推理和文本生成能力的最先进大型语言模型。 |
baichuan-inc/baichuan2-13b-chat | 4,096 tokens | 支持中英文聊天、编码、数学、指令遵循、解题 |
NVIDIA NIM 使您能够使用 WSL2(适用于 Linux 的 Windows 子系统)在您的 Windows 机器上本地运行强大的大型语言模型。这种方法让您可以利用您的 NVIDIA GPU 进行私密、安全、高性价比的 AI 推理,而无需依赖云服务。非常适合需要数据隐私或离线能力的开发、测试或生产场景。
以下是设置本地 NVIDIA NIM 模型的逐步指南
from crewai.llm import LLM
local_nvidia_nim_llm = LLM(
model="openai/meta/llama-3.1-8b-instruct", # it's an openai-api compatible model
base_url="https://:8000/v1",
api_key="<your_api_key|any text if you have not configured it>", # api_key is required, but you can use any text
)
# Then you can use it in your crew:
@CrewBase
class MyCrew():
# ...
@agent
def researcher(self) -> Agent:
return Agent(
config=self.agents_config['researcher'], # type: ignore[index]
llm=local_nvidia_nim_llm
)
# ...
在您的 .env
文件中设置以下环境变量
GROQ_API_KEY=<your-api-key>
在您的 CrewAI 项目中的使用示例
llm = LLM(
model="groq/llama-3.2-90b-text-preview",
temperature=0.7
)
模型 | 上下文窗口 | 最佳用途 |
---|---|---|
Llama 3.1 70B/8B | 131,072 tokens | 高性能,大上下文任务 |
Llama 3.2 系列 | 8,192 tokens | 通用任务 |
Mixtral 8x7B | 32,768 tokens | 平衡的性能和上下文 |
在您的 .env
文件中设置以下环境变量
# Required
WATSONX_URL=<your-url>
WATSONX_APIKEY=<your-apikey>
WATSONX_PROJECT_ID=<your-project-id>
# Optional
WATSONX_TOKEN=<your-token>
WATSONX_DEPLOYMENT_SPACE_ID=<your-space-id>
在您的 CrewAI 项目中的使用示例
llm = LLM(
model="watsonx/meta-llama/llama-3-1-70b-instruct",
base_url="https://api.watsonx.ai/v1"
)
- 安装 Ollama:ollama.ai
- 运行模型:
ollama run llama3
- 配置
llm = LLM(
model="ollama/llama3:70b",
base_url="https://:11434"
)
在您的 .env
文件中设置以下环境变量
FIREWORKS_API_KEY=<your-api-key>
在您的 CrewAI 项目中的使用示例
llm = LLM(
model="fireworks_ai/accounts/fireworks/models/llama-v3-70b-instruct",
temperature=0.7
)
在您的 .env
文件中设置以下环境变量
PERPLEXITY_API_KEY=<your-api-key>
在您的 CrewAI 项目中的使用示例
llm = LLM(
model="llama-3.1-sonar-large-128k-online",
base_url="https://api.perplexity.ai/"
)
在您的 .env
文件中设置以下环境变量
HF_TOKEN=<your-api-key>
在您的 CrewAI 项目中的使用示例
llm = LLM(
model="huggingface/meta-llama/Meta-Llama-3.1-8B-Instruct"
)
在您的 .env
文件中设置以下环境变量
SAMBANOVA_API_KEY=<your-api-key>
在您的 CrewAI 项目中的使用示例
llm = LLM(
model="sambanova/Meta-Llama-3.1-8B-Instruct",
temperature=0.7
)
模型 | 上下文窗口 | 最佳用途 |
---|---|---|
Llama 3.1 70B/8B | 高达 131,072 tokens | 高性能,大上下文任务 |
Llama 3.1 405B | 8,192 tokens | 高性能和输出质量 |
Llama 3.2 系列 | 8,192 tokens | 通用,多模态任务 |
Llama 3.3 70B | 高达 131,072 tokens | 高性能和输出质量 |
Qwen2 系列 | 8,192 tokens | 高性能和输出质量 |
在您的 .env
文件中设置以下环境变量
# Required
CEREBRAS_API_KEY=<your-api-key>
在您的 CrewAI 项目中的使用示例
llm = LLM(
model="cerebras/llama3.1-70b",
temperature=0.7,
max_tokens=8192
)
Cerebras 特性
- 快速推理速度
- 有竞争力的定价
- 速度和质量的良好平衡
- 支持长上下文窗口
在您的 .env
文件中设置以下环境变量
OPENROUTER_API_KEY=<your-api-key>
在您的 CrewAI 项目中的使用示例
llm = LLM(
model="openrouter/deepseek/deepseek-r1",
base_url="https://openrouter.ai/api/v1",
api_key=OPENROUTER_API_KEY
)
Open Router 模型
- openrouter/deepseek/deepseek-r1
- openrouter/deepseek/deepseek-chat
流式响应
CrewAI 支持大型语言模型的流式响应,使您的应用程序能够实时接收和处理生成的输出。
通过在初始化大型语言模型时将 stream
参数设置为 True
来启用流式处理
from crewai import LLM
# Create an LLM with streaming enabled
llm = LLM(
model="openai/gpt-4o",
stream=True # Enable streaming
)
启用流式处理后,响应会以生成时的块形式传递,从而创建更响应迅速的用户体验。
通过在初始化大型语言模型时将 stream
参数设置为 True
来启用流式处理
from crewai import LLM
# Create an LLM with streaming enabled
llm = LLM(
model="openai/gpt-4o",
stream=True # Enable streaming
)
启用流式处理后,响应会以生成时的块形式传递,从而创建更响应迅速的用户体验。
CrewAI 在流式处理期间为接收到的每个块发出事件
from crewai.utilities.events import (
LLMStreamChunkEvent
)
from crewai.utilities.events.base_event_listener import BaseEventListener
class MyCustomListener(BaseEventListener):
def setup_listeners(self, crewai_event_bus):
@crewai_event_bus.on(LLMStreamChunkEvent)
def on_llm_stream_chunk(self, event: LLMStreamChunkEvent):
# Process each chunk as it arrives
print(f"Received chunk: {event.chunk}")
my_listener = MyCustomListener()
点击此处了解更多详情
结构化大型语言模型调用
CrewAI 支持从大型语言模型调用中获取结构化响应,允许您使用 Pydantic 模型定义 response_format
。这使框架能够自动解析和验证输出,从而更轻松地将响应集成到您的应用程序中,无需手动后处理。
例如,您可以定义一个 Pydantic 模型来表示预期的响应结构,并在实例化大型语言模型时将其作为 response_format
传递。然后将使用该模型将大型语言模型的输出转换为结构化的 Python 对象。
from crewai import LLM
class Dog(BaseModel):
name: str
age: int
breed: str
llm = LLM(model="gpt-4o", response_format=Dog)
response = llm.call(
"Analyze the following messages and return the name, age, and breed. "
"Meet Kona! She is 3 years old and is a black german shepherd."
)
print(response)
# Output:
# Dog(name='Kona', age=3, breed='black german shepherd')
高级功能和优化
了解如何充分利用您的大型语言模型配置
CrewAI 包含智能上下文管理功能
from crewai import LLM
# CrewAI automatically handles:
# 1. Token counting and tracking
# 2. Content summarization when needed
# 3. Task splitting for large contexts
llm = LLM(
model="gpt-4",
max_tokens=4000, # Limit response length
)
上下文管理的最佳实践
- 选择具有适当上下文窗口的模型
- 如果可能,预处理长输入
- 对大型文档使用分块处理
- 监控 token 使用量以优化成本
Token 使用优化
为您的任务选择正确的上下文窗口
- 小型任务(高达 4K tokens):标准模型
- 中型任务(4K-32K 之间):增强模型
- 大型任务(超过 32K):大上下文模型
# Configure model with appropriate settings
llm = LLM(
model="openai/gpt-4-turbo-preview",
temperature=0.7, # Adjust based on task
max_tokens=4096, # Set based on output needs
timeout=300 # Longer timeout for complex tasks
)
- 事实性响应使用较低的温度(0.1 到 0.3)
- 创意性任务使用较高的温度(0.7 到 0.9)
最佳实践
- 监控 token 使用量
- 实现速率限制
- 如果可能,使用缓存
- 设置适当的 max_tokens 限制
请记住定期监控您的 token 使用量,并根据需要调整您的配置,以优化成本和性能。
常见问题和解决方案
大多数身份验证问题可以通过检查 API 密钥格式和环境变量名称来解决。
# OpenAI
OPENAI_API_KEY=sk-...
# Anthropic
ANTHROPIC_API_KEY=sk-ant-...
大多数身份验证问题可以通过检查 API 密钥格式和环境变量名称来解决。
# OpenAI
OPENAI_API_KEY=sk-...
# Anthropic
ANTHROPIC_API_KEY=sk-ant-...
模型名称中始终包含提供商前缀
# Correct
llm = LLM(model="openai/gpt-4")
# Incorrect
llm = LLM(model="gpt-4")
对于大型任务,使用更大的上下文模型
# Large context model
llm = LLM(model="openai/gpt-4o") # 128K tokens