外观
LangChain 集成
SDK
安装依赖
pip install langchain langchain-openai requests代码示例
import requests
from langchain.agents import initialize_agent, Tool, AgentType
from langchain_openai import ChatOpenAI
OPENAI_API_KEY = "YOUR-OPENAI-API-KEY"
ZIXIANG_API_KEY = "YOUR-ZIXIANG-API-KEY"
# 定义梓享搜索工具
@tool
def zixiang_websearch_tool(query: str, count: int = 10) -> str:
"""
使用梓享 AI 搜索进行网页搜索。
参数:
- query: 搜索关键词
- count: 返回的搜索结果数量
返回:
- 搜索结果的详细信息,包括网页标题、网页URL、网页摘要、网站名称、网站Icon、网页发布时间等。
"""
url = 'https://search.aiserver.cloud/v1/api'
headers = {
'Authorization': f'Bearer {ZIXIANG_API_KEY}',
'Content-Type': 'application/json'
}
data = {
"query": query,
"engine": "china",
"max_results": count
}
response = requests.post(url, headers=headers, json=data)
if response.status_code == 200:
json_response = response.json()
try:
if json_response["code"] != 0 or not json_response["data"]:
return f"搜索API请求失败,原因是: {json_response.get('msg', '未知错误')}"
webpages = json_response["data"]["results"]
if not webpages:
return "未找到相关结果。"
formatted_results = ""
for idx, page in enumerate(webpages, start=1):
formatted_results += (
f"引用: {idx}\n"
f"标题: {page['title']}\n"
f"URL: {page['url']}\n"
f"摘要: {page['content']}\n"
f"网站名称: {page.get('siteName', '')}\n"
f"网站图标: {page.get('siteIcon', '')}\n"
f"发布时间: {page.get('dateLastCrawled', '')}\n\n"
)
return formatted_results.strip()
except Exception as e:
return f"搜索API请求失败,原因是: 搜索结果解析失败 {str(e)}"
else:
return f"搜索API请求失败,状态码: {response.status_code}, 错误信息: {response.text}"
# 创建 LangChain 工具
zixiang_tool = Tool(
name="ZixiangWebSearch",
func=zixiang_websearch_tool,
description="使用梓享 AI 搜索进行联网搜索,输入应为搜索查询字符串,输出将返回搜索结果的详细信息,包括网页标题、网页URL、网页摘要、网站名称、网站Icon、网页发布时间等。"
)
# 初始化模型和 Agent
llm = ChatOpenAI(
model="gpt-4o-mini",
temperature=0,
openai_api_key=OPENAI_API_KEY
)
# 初始化代理,包含您的自定义工具
agent = initialize_agent(
tools=[zixiang_tool],
llm=llm,
agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
verbose=True
)
# 使用代理进行查询
user_question = "请告诉我2024年人工智能技术的最新进展有哪些亮点"
response = agent.run(user_question)
print(response)响应结果
> Entering new AgentExecutor chain...
我需要查询阿里巴巴2024年ESG报告的相关信息,以了解其中的亮点。
Action: ZixiangWebSearch
Action Input: "2024年人工智能技术最新进展"
Observation: 引用: 1
标题: 2024年AI技术十大突破:从大模型到具身智能全面盘点
URL: https://example.com/ai-2024-breakthroughs
摘要: 2024年,人工智能技术迎来突破性进展。大模型参数规模突破万亿级别,多模态理解能力显著提升;GPT-5、Claude 4等新一代模型推出;具身智能机器人进入商用阶段;AI芯片性能提升300%,能效比大幅改善。
网站名称: AI科技前沿
网站图标: https://example.com/favicon.ico
发布时间: 2024-12-15
引用: 2
标题: 中国AI产业报告:2024年市场规模突破5000亿元
URL: https://example.com/china-ai-2024
摘要: 根据最新发布的中国AI产业报告,2024年国内人工智能市场规模达到5327亿元,同比增长42.8%。其中,大模型应用占比35%,计算机视觉占28%,自然语言处理占19%。企业级AI应用渗透率达到67%。
网站名称: 科技财经网
网站图标: https://example.com/favicon.ico
发布时间: 2024-12-10
引用: 3
标题: OpenAI发布Sora视频生成模型:AI创作进入新纪元
URL: https://example.com/sora-release
摘要: OpenAI正式发布Sora视频生成模型,可根据文字描述生成长达60秒的高质量视频。该技术在影视制作、广告创意、教育培训等领域引发革命性变化,已有超过1000家企业申请商用合作。
网站名称: 科技日报
网站图标: https://example.com/favicon.ico
发布时间: 2024-11-28
Thought: 我现在了解了2024年人工智能技术的主要进展。让我总结一下这些亮点。
Final Answer: 2024年人工智能技术的最新进展主要有以下亮点:
1. **大模型技术突破**:参数规模突破万亿级别,多模态理解能力显著提升,GPT-5、Claude 4等新一代模型相继推出
2. **产业规模快速增长**:中国AI市场规模突破5000亿元,达到5327亿元,同比增长42.8%。企业级AI应用渗透率已达67%
3. **视频生成技术革命**:OpenAI发布的Sora模型可生成长达60秒的高质量视频,在影视制作、广告创意等领域带来革命性变化
4. **硬件性能大幅提升**:AI芯片性能提升300%,能效比大幅改善
5. **具身智能商用化**:具身智能机器人正式进入商用阶段,标志着AI从虚拟走向实体
这些进展表明,人工智能技术正在从实验室走向广泛的商业应用,对各行各业产生深远影响。
> Finished chain.完整思考链
以上示例展示了 LangChain Agent 的完整工作流程:
- Entering new AgentExecutor chain:Agent 开始执行
- Thought:AI 分析需要做什么
- Action:决定使用 ZixiangWebSearch 工具
- Action Input:构建搜索查询
- Observation:获取搜索结果(包含标题、URL、摘要、网站信息等)
- Final Answer:基于搜索结果生成最终回答
高级应用
RAG 混合检索
结合本地知识库和互联网搜索,实现更智能的问答:
from langchain.vectorstores import FAISS
from langchain.embeddings import OpenAIEmbeddings
from langchain.chains import RetrievalQA
# 创建本地知识库工具
vectorstore = FAISS.load_local("./company_docs", OpenAIEmbeddings())
local_qa = RetrievalQA.from_chain_type(
llm=ChatOpenAI(temperature=0),
retriever=vectorstore.as_retriever()
)
local_tool = Tool(
name="LocalKnowledgeBase",
func=local_qa.run,
description="查询公司内部文档、产品手册、技术规范等固定知识"
)
# 创建 Agent(同时使用本地和互联网搜索)
agent = initialize_agent(
tools=[local_tool, zixiang_tool],
llm=llm,
agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
verbose=True
)
# Agent 会自动选择合适的工具
agent.run("我们公司的技术架构是什么?") # 使用本地知识库
agent.run("2024年行业最新技术趋势?") # 使用互联网搜索支持双引擎切换
def zixiang_search_with_engine(query: str, engine: str = "china") -> str:
"""支持选择引擎的搜索功能"""
url = "https://search.aiserver.cloud/v1/api"
headers = {
"Authorization": "Bearer YOUR-API-KEY",
"Content-Type": "application/json"
}
data = {
"engine": engine, # china 或 global
"query": query,
"max_results": 5
}
response = requests.post(url, headers=headers, json=data)
result = response.json()
if result.get("code") == 0:
results = result["data"]["results"]
return "\n\n".join([
f"标题: {item['title']}\n链接: {item['url']}\n摘要: {item['content']}"
for item in results
])
return f"搜索失败: {result.get('msg')}"
# 创建中文搜索工具
china_search_tool = Tool(
name="ChinaSearch",
func=lambda q: zixiang_search_with_engine(q, "china"),
description="搜索中文互联网信息,适合查询国内内容"
)
# 创建全球搜索工具
global_search_tool = Tool(
name="GlobalSearch",
func=lambda q: zixiang_search_with_engine(q, "global"),
description="搜索全球互联网信息,支持多语言"
)
# 使用两个工具
agent = initialize_agent(
tools=[china_search_tool, global_search_tool],
llm=llm,
agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
verbose=True
)相关资源
| 资源 | 链接 |
|---|---|
| LangChain 官方文档 | https://python.langchain.com/ |
| API 完整文档 | Web Search API |
