嘉义市网站建设_网站建设公司_网站建设_seo优化
2025/12/18 22:17:40 网站建设 项目流程

🎯 今日目标:掌握文心一言和文心一格API的获取与调用方法

一、核心概念澄清 ✅

今天首先澄清了一个重要概念区别:

  1. AI模型 vs 数据模型

• AI模型:百度已训练好的大模型(如文心一言),我们直接调用API使用

• 数据模型:自己项目中定义的数据库结构(Django Models),需要自己设计创建

重要结论:我们不需要在百度官网创建模型,只需要在自己的Django项目中创建数据模型,然后调用现成的AI模型API。

二、API获取流程 📋

  1. 文心一言API(文本生成)

获取步骤:

  1. 访问百度AI开放平台:https://ai.baidu.com/

  2. 注册/登录并完成实名认证

  3. 进入控制台 → 文心大模型 → 文心一言

  4. 创建应用,获取API Key、Secret Key、App ID

  5. 注意查看免费调用额度

  6. 文心一格API(图像生成)

获取步骤:

  1. 同样在百度AI开放平台控制台
  2. 选择文心一格服务并开通
  3. 获取API凭证
  4. 了解图片生成的参数配置

三、技术实现代码 💻

  1. 安装依赖

pip install requests baidu-aip

  1. 核心函数封装

获取access_token

def get_access_token(api_key, secret_key):
url = f"https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id={api_key}&client_secret={secret_key}"
response = requests.post(url)
return response.json().get("access_token")

文心一言:生成故事文本

def generate_story(keywords, api_key, secret_key):
access_token = get_access_token(api_key, secret_key)
url = f"https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/eb-instant?access_token={access_token}"

prompt = f"请根据以下关键词创作一个适合儿童的短篇故事(300-500字):{keywords}"
payload = {"messages": [{"role": "user", "content": prompt}]
}response = requests.post(url, headers={'Content-Type': 'application/json'}, data=json.dumps(payload))
return response.json().get("result", "生成失败")

文心一格:生成故事插图

def generate_image(prompt, api_key, secret_key, save_path="story_image.png"):
access_token = get_access_token(api_key, secret_key)
url = f"https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/text2image/sd_xl?access_token={access_token}"

payload = {"prompt": prompt,"size": "1024x1024","style": "卡通","n": 1
}response = requests.post(url, headers={'Content-Type': 'application/json'}, data=json.dumps(payload))if "data" in response.json():image_url = response.json()["data"][0]["image"]img_response = requests.get(image_url)with open(save_path, 'wb') as f:f.write(img_response.content)return save_path
return None

四、Django项目集成方案 🔄

  1. 数据模型设计

models.py

class Story(models.Model):
title = models.CharField(max_length=200) # 实验一
keywords = models.CharField(max_length=300)
content = models.TextField()
image_url = models.URLField(blank=True) # 实验二
audio_url = models.URLField(blank=True) # 实验三
created_at = models.DateTimeField(auto_now_add=True)

  1. 视图函数示例

views.py

def create_story_view(request):
if request.method == 'POST':
keywords = request.POST.get('keywords', '')

    # 1. 生成故事文本story_text = generate_story(keywords, API_KEY, SECRET_KEY)# 2. 生成插图image_prompt = f"儿童故事插图:{keywords}"image_path = generate_image(image_prompt, API_KEY, SECRET_KEY)# 3. 保存到数据库story = Story.objects.create(title=f"关于{keywords}的故事",keywords=keywords,content=story_text,image_url=f"/media/{image_path}" if image_path else "")return JsonResponse({'success': True, 'story': story.id})

五、学习收获与思考 💡

✅ 已掌握的知识点:

  1. API获取流程:清晰了解百度AI平台API申请步骤
  2. 接口调用方法:掌握access_token机制和API调用方式
  3. 错误处理意识:API调用需要添加try-catch和降级方案
  4. 项目集成思路:如何将AI能力嵌入到Django项目中

⚠️ 注意事项:

  1. 费用控制:API调用可能有费用,需关注免费额度和计费方式
  2. 速率限制:免费版本有QPS限制,需合理设计调用频率
  3. 内容安全:生成内容需符合平台规范,特别是儿童内容
  4. 数据存储:生成的图片建议使用云存储,避免服务器压力

六、下一步行动计划 🎯

短期任务(明天):

  1. ✅ 完成百度API账号注册和认证
  2. ✅ 获取实际的API Key和Secret Key
  3. ✅ 编写完整的Django模型和视图
  4. ✅ 测试端到端流程(关键词→故事→图片)

中期计划:

  1. 🔄 添加语音合成功能(实验三)
  2. 🔄 设计前端界面(表单提交+结果显示)
  3. 🔄 添加用户认证和故事收藏功能
  4. 🔄 优化生成提示词(prompt engineering)

备选方案:

如果百度API遇到问题,可考虑:
• 文本生成:智谱AI、阿里通义千问

• 图像生成:Stable Diffusion API、Leonardo AI

七、遇到问题与解决方案 ❓

问题1:API调用返回权限错误

可能原因:access_token过期或无效
解决方案:每次调用前检查token有效期,过期时重新获取

问题2:生成内容不符合预期

解决方案:优化提示词(prompt),加入更详细的约束条件

改进后的prompt

prompt = f"""
请根据以下关键词创作一个适合6-8岁儿童的短篇故事:
关键词:{keywords}

要求:

  1. 故事长度300-500字
  2. 包含正能量和教育意义
  3. 语言简单生动
  4. 有明确的开始、发展、结尾
    """

问题3:图片生成风格不一致

解决方案:在prompt中明确指定风格参数
payload = {
"prompt": f"卡通风格,色彩鲜艳,适合儿童:{prompt}",
"size": "1024x1024",
"style": "卡通",
"negative_prompt": "恐怖、暴力、成人内容" # 负面提示词
}

八、技术思考延伸 💭

  1. 性能优化方向

• 异步处理:使用Celery异步队列处理生成任务

• 缓存机制:对常见关键词的结果进行缓存

• 批量生成:一次生成多个版本供用户选择

  1. 功能扩展可能

• 多语言支持:生成不同语言版本的故事

• 互动故事:让用户选择故事发展方向

• 个性化定制:根据用户年龄调整故事难度

  1. 用户体验优化

• 生成进度提示

• 多版本选择

• 一键分享功能

📊 今日学习总结

学习模块 掌握程度 实践状态

概念理解 ✅ 优秀 已清晰区分AI模型与数据模型

API获取 ✅ 良好 了解流程,待实际操作

代码实现 ✅ 优秀 完成核心函数编写

Django集成 ✅ 良好 设计好数据模型和视图结构

错误处理 🔄 进行中 了解基本思路,需实际测试

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询