零代码到AI应用:Web-Dev-For-Beginners智能扩展全攻略

零代码到AI应用:Web-Dev-For-Beginners智能扩展全攻略

【免费下载链接】Web-Dev-For-Beginners 24 Lessons, 12 Weeks, Get Started as a Web Developer 【免费下载链接】Web-Dev-For-Beginners 项目地址: https://gitcode.com/GitHub_Trending/we/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模型对话:

mermaid

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应用,无需从零开始实现复杂算法。"

整个交互流程就像一场跨越网络的对话:

mermaid

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)

AI工具调用原理

更复杂的工具可以调用外部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)

AI应用架构

完整应用代码: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应用的核心技能:

  1. 使用LangChain连接不同AI模型
  2. 构建有记忆的对话系统
  3. 为AI添加工具调用能力
  4. 实现流式响应和结构化输出
  5. 整合这些技术构建完整应用

下一步可以探索:

  • 高级解决方案
  • 添加更多工具如数据库查询或文件操作
  • 构建Web界面使AI应用更易用
  • 学习向量存储和嵌入技术处理文档

AI学习路径

希望这篇指南能帮助你开启AI开发之旅。记住,最好的学习方式是实践—克隆项目仓库,修改代码,尝试构建自己的AI应用!仓库地址:https://gitcode.com/GitHub_Trending/we/Web-Dev-For-Beginners

【免费下载链接】Web-Dev-For-Beginners 24 Lessons, 12 Weeks, Get Started as a Web Developer 【免费下载链接】Web-Dev-For-Beginners 项目地址: https://gitcode.com/GitHub_Trending/we/Web-Dev-For-Beginners

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值