零代码到AI应用:Web-Dev-For-Beginners智能扩展全攻略
你是否曾因复杂的AI集成而却步?是否梦想过用简单几行代码就能构建智能应用?Web-Dev-For-Beginners的AI框架项目就像给初学者的"AI多功能工具",让曾经遥不可及的人工智能开发变得触手可及。本文将带你从零基础开始,通过10-ai-framework-project模块,掌握现代AI应用开发的核心技能,无需深厚机器学习背景,只需基本的Web开发知识。
为什么选择AI框架?
直接使用API、SDK和专业框架,究竟有何区别?就像选择不同的交通工具,它们都能到达目的地,但体验和效率截然不同:
| 方案 | 优势 | 最佳适用场景 | 注意事项 |
|---|---|---|---|
| 直接HTTP请求 | 完全控制,无依赖 | 简单查询,学习基础原理 | 代码冗长,需手动处理错误 |
| SDK集成 | 减少样板代码,针对特定模型优化 | 单一模型应用 | 局限于特定供应商 |
| AI框架 | 统一API,内置抽象层 | 多模型应用,复杂工作流 | 有学习曲线,可能过度抽象 |
AI框架的真正价值在于它能像翻译官一样,让你用统一的语言与不同AI模型对话:
快速上手:你的第一个AI对话
从最简单的对话开始,就像学习外语先掌握问候语。使用LangChain连接GitHub Models只需几行代码:
from langchain_openai import ChatOpenAI
import os
llm = ChatOpenAI(
api_key=os.environ["GITHUB_TOKEN"],
base_url="https://models.github.ai/inference",
model="openai/gpt-4o-mini",
)
# 发送简单提示
response = llm.invoke("什么是人工智能框架?用一句话解释")
print(response.content)
这段代码会输出类似:"人工智能框架是一套预先构建的工具和接口,帮助开发者更轻松地创建AI应用,无需从零开始实现复杂算法。"
整个交互流程就像一场跨越网络的对话:
构建有记忆的对话AI
真正的智能应用需要记住对话历史,就像人类交流不会每次都从零开始。LangChain提供了多种消息类型来构建连贯对话:
from langchain_core.messages import HumanMessage, SystemMessage
messages = [
SystemMessage(content="你是星际迷航中的皮卡德舰长,用智慧和鼓励的语气回应"),
HumanMessage(content="介绍一下你自己"),
]
response = llm.invoke(messages)
print(response.content)
这段代码会生成皮卡德舰长风格的回应:"我是让-吕克·皮卡德,星际联邦星舰企业号的舰长。我们的使命是探索新的世界,寻找新的生命和文明,勇敢地前往前人未至之地..."
要保持对话连续性,只需将每次响应添加到消息列表:
# 添加AI响应到对话历史
messages.append(response)
# 添加新问题
messages.append(HumanMessage(content="我叫小明,能加入你的船员吗?"))
# 获取新响应
response = llm.invoke(messages)
print(response.content)
完整代码示例可参考:app-chat.py
让AI拥有实用技能:工具调用
工具调用是AI框架最强大的功能之一,就像给AI配备了多功能工具。以下是一个能做加法和讲笑话的AI:
from typing_extensions import Annotated, TypedDict
class add(TypedDict):
"""Add two integers."""
a: Annotated[int, "第一个整数"]
b: Annotated[int, "第二个整数"]
class joke(TypedDict):
"""Tell a joke."""
category: Annotated[str, "笑话类别"]
tools = [add, joke]
llm_with_tools = llm.bind_tools(tools)
# 使用工具
query = "讲一个动物相关的笑话"
res = llm_with_tools.invoke(query)
更复杂的工具可以调用外部API,比如这个获取Chuck Norris笑话的工具:
def get_joke(category: str) -> str:
response = requests.get(
f"https://api.chucknorris.io/jokes/random?category={category}",
headers={"Accept": "application/json"}
)
return response.json().get("value", "无法获取笑话")
functions = {
"add": lambda a, b: a + b,
"joke": lambda category: get_joke(category)
}
完整工具示例代码:app-tools.py
打造实用AI应用:代码助手
整合所学知识,构建一个能回答问题、使用工具的完整代码助手:
class CodingAssistant:
def __init__(self):
self.llm = ChatOpenAI(
api_key=os.environ["GITHUB_TOKEN"],
base_url="https://models.github.ai/inference",
model="openai/gpt-4o-mini"
)
self.conversation_history = [
SystemMessage(content="你是专业编程助手,帮助用户学习和解决代码问题")
]
self.setup_tools()
def setup_tools(self):
# 定义搜索和代码格式化工具
class web_search(TypedDict):
"""搜索编程文档或示例"""
query: Annotated[str, "搜索查询词"]
class code_formatter(TypedDict):
"""格式化和验证代码片段"""
code: Annotated[str, "需要格式化的代码"]
language: Annotated[str, "编程语言"]
self.tools = [web_search, code_formatter]
self.llm_with_tools = self.llm.bind_tools(self.tools)
完整应用代码:app.py
进阶技巧:流式响应与结构化输出
让AI像人类打字一样实时输出响应,提升用户体验:
llm = ChatOpenAI(
api_key=os.environ["GITHUB_TOKEN"],
base_url="https://models.github.ai/inference",
model="openai/gpt-4o-mini",
streaming=True
)
# 流式输出响应
for chunk in llm.stream("解释什么是递归函数,用Python举例"):
print(chunk.content, end="", flush=True)
获取结构化输出,让AI返回可直接使用的数据格式:
from langchain_core.output_parsers import JsonOutputParser
from pydantic import BaseModel, Field
class CodeReview(BaseModel):
score: int = Field(description="代码质量评分1-10")
strengths: list[str] = Field(description="代码优点列表")
improvements: list[str] = Field(description="建议改进点")
parser = JsonOutputParser(pydantic_object=CodeReview)
prompt = ChatPromptTemplate.from_messages([
("system", "你是代码审查专家。{format_instructions}"),
("human", "审查这段代码: {code}")
])
chain = prompt | llm | parser
result = chain.invoke({
"code": "def add(a,b): return a+b",
"format_instructions": parser.get_format_instructions()
})
总结与下一步学习
通过Web-Dev-For-Beginners的AI框架项目,你已经掌握了构建实用AI应用的核心技能:
- 使用LangChain连接不同AI模型
- 构建有记忆的对话系统
- 为AI添加工具调用能力
- 实现流式响应和结构化输出
- 整合这些技术构建完整应用
下一步可以探索:
- 高级解决方案
- 添加更多工具如数据库查询或文件操作
- 构建Web界面使AI应用更易用
- 学习向量存储和嵌入技术处理文档
希望这篇指南能帮助你开启AI开发之旅。记住,最好的学习方式是实践—克隆项目仓库,修改代码,尝试构建自己的AI应用!仓库地址:https://gitcode.com/GitHub_Trending/we/Web-Dev-For-Beginners
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



