• Stars
    star
    162
  • Rank 224,940 (Top 5 %)
  • Language
    Java
  • Created about 1 year ago
  • Updated 10 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

鱼聪明 AI 的 Java SDK,几行代码使用 AI 助手能力!

鱼聪明 Java SDK

基于 Spring Boot Starter 开发,只需一行代码,使用强大的 AI 能力!

鱼聪明 AI:https://yucongming.com

官方公众号:鱼聪明AI

快速开始

0、引入 sdk

<dependency>
    <groupId>com.yucongming</groupId>
    <artifactId>yucongming-java-sdk</artifactId>
    <version>0.0.3</version>
</dependency>

1、在 鱼聪明 AI 开放平台 获取开发者密钥对

2、初始化 YuCongMingClient 对象

方法 1:自主 new 对象

String accessKey = "你的 accessKey";
String secretKey = "你的 secretKey";
YuCongMingClient client = new YuCongMingClient(accessKey, secretKey);

方法 2:通过配置注入对象

修改配置:

yuapi:
  client:
    access-key: 你的 access-key
    secret-key: 你的 secret-key

使用客户端对象:

@Resource
private YuCongMingClient client;

3、构造请求参数

DevChatRequest devChatRequest = new DevChatRequest();
devChatRequest.setModelId(1651468516836098050L);
devChatRequest.setMessage("鱼皮");

4、获取响应结果

BaseResponse<DevChatResponse> response = client.doChat(devChatRequest);
System.out.println(response.getData());

API 文档

AI 对话

方法名:doChat

请求参数:

  • modelId:使用的会话模型(助手)id
  • message:要发送的消息,不超过 1024 字

响应结果:

  • code:响应状态码
  • data:
    • content:对话结果内容
  • message:响应信息

示例代码:

// 构造请求
DevChatRequest devChatRequest = new DevChatRequest();
devChatRequest.setModelId(1651468516836098050L);
devChatRequest.setMessage("鱼皮");

// 获取响应
BaseResponse<DevChatResponse> response = client.doChat(devChatRequest);
System.out.println(response.getData());

模型(助手):

设置自己的模型(助手)可以使AI的回答更加个性化,如 “1651468516836098050” 这个模型(助手)id会更加倾向于回答歌曲和歌单,你可以通过平台首页的 “创建助手” 和 “我的助手” 功能来创建、查看和修改模型(助手),查看模型(助手)即可看到模型(助手)id。

Http 接入

  1. 获取 AccessKeySecretKey

  2. 请求信息

    URL :https://www.yucongming.com/api/dev/chat 请求方法:POST 请求头:

    请求头名称 示例值
    accessKey accessKey 9vtw6bx8eh65uu5q62a8nhqdjf2asapp
    nonce 四位随机整数 1234
    body 请求参数的 md5 加密值,请求参数详情见下方 cf2623df4bf9d0485b0ab9392cbcef11
    timestamp 当前时间戳(单位秒) 1687775370
    sign 签名,详情见下方 d10ce4n429778060c0af1d5f3f388d39953e74d996022e6182094fa3a84adbe9
  3. 请求参数

    modelId 模型(助手)id
    message 消息(问题)
  4. 签名认证

    签名的值是 请求参数的 md5 加密值 + . + SecretKey 的值进行 SHA256 加密

  5. 示例代码( Python )

    import hashlib
    import time
    import random
    import requests
    import json
    
    
    class DevChatRequest:
        def __init__(self, model_id, message: str):
            self.model_id = model_id
            self.message = message
    
        def to_dict(self):
            return {
                "modelId" : self.model_id,
                "message" : self.message
            }
    
    class YuCongMingClient:
        HOST = 'https://www.yucongming.com/api/dev'
    
        def __init__(self, access_key, secret_key):
            self.access_key = access_key
            self.secret_key = secret_key
    
        def do_chat(self, dev_chat_request: DevChatRequest):
            url = self.HOST + '/chat'
            json_data = json.dumps(dev_chat_request.to_dict())
            headers = self.get_headers(json_data)
            response = requests.post(url, headers=headers, data=json_data)
            return response.json()
    
        def get_headers(self, json_data):
            encode_body = self.encode_body(json_data)
            headers = {
                'Content-Type': 'application/json',
                'accessKey': self.access_key,
                'nonce': self.generate_nonce(),
                'body': encode_body,
                'timestamp': str(int(time.time())),
                'sign': self.generate_sign(encode_body)
            }
            return headers
    
        def generate_nonce(self):
            return str(random.randint(1000, 9999))
    
        def encode_body(self, json_data):
            md5 = hashlib.md5()
            md5.update(json_data.encode('utf-8'))
            return md5.hexdigest()
    
        def generate_sign(self, json_data):
            sha256 = hashlib.sha256()
            sign_str = json_data + "." +self.secret_key
            sha256.update(sign_str.encode('utf-8'))
            return sha256.hexdigest()
    
    
    if __name__ == '__main__':
        accessKey = "你的 accessKey";
        secretKey = "你的 secretKey";
        ycmc = YuCongMingClient(accessKey, secretKey)
        print(ycmc.do_chat(DevChatRequest("1651468516836098050", "鱼皮")))
  6. 返回状态码

    Code Message 解释
    0 ok

    | | 40000 | 请求参数错误 | 检查参数名是否匹配、长度是否符合要求等 | | 40100 | 未登录 | | | 40101 | 无权限 | 可能是由nonce、timestamp、sign 异常引起 | | 40400 | 请求数据不存在 | ak、模型等不存在 | | 40300 | 禁止访问 | 账号状态异常等 | | 50000 | 系统内部异常 | 网络抖动,数据库操作失败等 | | 50001 | 操作失败 | 限流等 |

More Repositories

1

codefather

程序员鱼皮的编程宝典。原创编程学习路线,包括经验分享、技术知识、学习资源、学习建议、项目等,适用于所有学习编程 & 求职的同学。已完成 Java、前端
Vue
4,986
star
2

mianshiya-public

干净免费的面试刷题网站,帮助大家拿到满意的 offer!💎 React 前端 + Node 后端 + 云开发全栈项目 by 程序员鱼皮
TypeScript
3,770
star
3

sql-generator

🔨 用 JSON 来生成结构化的 SQL 语句,基于 Vue3 + TypeScript + Vite + Ant Design + MonacoEditor 实现,项目简单(重逻辑轻页面)、适合练手~
Vue
3,355
star
4

free-programming-resources

💎 免费的编程资源大全,持续更新!🔥 覆盖各种语言和方向(Java \ Python \ C++ \ JavaScript \ Golang \ 前端 \ 后端等)的学习路线、贴心教程、项目实战、编程书籍、面试合集、实用资源等,对程序员非常有帮助!
HTML
2,818
star
5

code-nav

💎 专业的编程导航,帮你找到优质的编程学习资源!公众号【编程导航】 ☁️ 前后端均开源,励志成为最好的全栈云开发项目!
JavaScript
2,547
star
6

sql-mother

免费的闯关式 SQL 自学教程网站,从 0 到 1 带大家掌握常用 SQL 语法,纯前端实现,简单易学~
TypeScript
2,478
star
7

yuindex

✨ 新项目 - 极客范儿的浏览器主页 💻 Vue 3 + Node.js 全栈项目,自实现 web 终端 + 命令系统
TypeScript
1,898
star
8

sql-father-backend-public

新项目:快速生成 SQL 和模拟数据的网站(Java 后端),大幅提高开发测试效率!by 程序员鱼皮
Java
1,857
star
9

yulegeyu

羊了个羊纯前端实现版【鱼了个鱼】,自定义关卡+图案+无限道具,可在线玩:https://yulegeyu.cn
TypeScript
1,696
star
10

sql-father-frontend-public

新项目:快速生成 SQL 和模拟数据的网站(React 前端),大幅提高开发测试效率!by 程序员鱼皮
TypeScript
1,361
star
11

daxigua

最简单的魔改发布『 合成大西瓜 』,配套改图工具,不用改代码,修改配置即可!
JavaScript
1,341
star
12

yu-auto-reply

AI 自动回复工具,支持灵活配置多个平台的监控和回答。目前已支持知识星球自动回复、OpenAI(ChatGPT)自动回答
Java
807
star
13

liyupi

506
star
14

yuzi-generator

基于 React + Spring Boot + Picocli + 对象存储的代码生成器共享平台,又分为 3 个循序渐进的子项目:基于命令行的本地代码生成器 + 代码生成器制作工具 + 在线代码生成器平台。实践 Java 命令行应用开发、FreeMarker 模板引擎、多种设计模式、对象存储、十几种优化方法、复杂业务的拆解和系统设计、分布式任务调度系统、Vert.x 响应式编程等
Java
369
star
15

ceshiya

免费的交互式网络安全自学网,助你成为网络安全达人!纯前端实现,简单易学~
TypeScript
272
star
16

better-coder

😄 一起快乐成长为更好的程序员吧!编程学习经验、技术干货、资源分享
HTML
256
star
17

father

专业的表情包网站,搜表情,找爸爸!适合前端、Java 开发者学习的全栈项目
Java
196
star
18

code-xingqiu

🪐 编程导航知识星球,帮助你学习编程的小圈子。配置公开,大家可以参考该项目做出自己的文档网站。
TypeScript
113
star
19

ikun-test

测试一下你是真爱坤还是小黑子?(Vue3 + Node 实现的移动端答题网站)
JavaScript
97
star
20

yu-rpc

从 0 到 1,带你开发自己的 RPC 框架
Java
84
star
21

yuapi-backend-public

提供 API 接口供开发者调用的平台 💎 by 鱼皮编程导航知识星球
Java
83
star
22

rubbish-yingxiaohao

打击营销号插件,营销号名单大全
JavaScript
67
star
23

yuso-backend-public

一站式聚合搜索平台 💎 by 鱼皮编程导航知识星球
Java
64
star
24

user-center-backend-public

企业核心用户管理系统,用于快速学习项目开发 💎 by 鱼皮编程导航知识星球
Java
54
star
25

yupao-backend-public

帮大家找到好伙伴的移动端网站 💎 by 鱼皮编程导航知识星球
Java
44
star
26

ChatGPT-Web

Vue
40
star
27

good-name

🤔 编程好名生成器,解决取名难题
JavaScript
35
star
28

awesome-cloudbase

☁️ 腾讯云开发资源合集,轻松开发小程序、Web、APP 等全栈应用!
33
star
29

WechatBot

TypeScript
33
star
30

backend-interview

个人整理及搜集的一些后端常用面试题
22
star
31

yu-image-uploader

React Multiple ImageUploader, native & faster & lighter & easier & more efficient
JavaScript
13
star
32

self-python-tools

some easy and useful tools by liyupi
Python
11
star
33

daxigua-tools

帮助你快速修改合成大西瓜的图片
Vue
11
star
34

hahalf

表情包搜索神器
JavaScript
10
star
35

father-backend

表情包网站【爸爸】后端
Java
6
star
36

code-learning

一起学习编程吧!
5
star
37

Design-Model

java design model
Java
3
star
38

Algorithm

algorithm practice
Java
2
star
39

Es-Tutorial

elasticsearch tutorial with swagger so that you can easily debug the restful api
Java
2
star
40

leetcode-c

C++
1
star
41

lyp_web

lazy_(:з」∠)_
JavaScript
1
star
42

Rabbitmq-Tutorial

Java
1
star
43

Useful-front-end-pages

by liyupi himself
HTML
1
star
44

MySQL-Optimizing

mysql optimizing skills
1
star
45

sjtuoj

C++
1
star
46

code-master

搞笑通俗的编程知识大百科
1
star