Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
KnowledgePlanet
road-map
chatglm-sdk-java
提交
1923bab4
chatglm-sdk-java
项目概览
KnowledgePlanet
/
road-map
/
chatglm-sdk-java
通知
254
Star
20
Fork
10
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
chatglm-sdk-java
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
1923bab4
编写于
10月 10, 2023
作者:
小傅哥
⛹
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
docs:文档
上级
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
137 addition
and
0 deletion
+137
-0
README.md
README.md
+137
-0
未找到文件。
README.md
0 → 100644
浏览文件 @
1923bab4
# 智谱大模型开放SDK - By 小傅哥版本
为了让研发伙伴更快,更方便的接入使用智谱大模型,而开发的 chatglm-sdk-java 也欢迎👏🏻大家基于智谱API接口补充功能。
此SDK设计,以 Session 会话模型,提供工厂🏭创建服务。代码非常清晰,易于扩展、易于维护。你的贡献💐会让AI更加璀璨,感谢智谱AI团队。
## 安装
-
申请ApiKey:
[
https://open.bigmodel.cn/usercenter/apikeys
](
https://open.bigmodel.cn/usercenter/apikeys
)
- 注册申请开通,即可获得 ApiKey
-
运行环境:JDK 1.8+
-
maven pom -
`暂时测试阶段,未推送到Maven中央仓库,需要下载代码本地 install 后使用`
```
pom
<dependency>
<groupId>cn.bugstack</groupId>
<artifactId>chatglm-sdk-java</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
```
## 测试
```
java
@Slf4j
public
class
ApiTest
{
private
OpenAiSession
openAiSession
;
@Before
public
void
test_OpenAiSessionFactory
()
{
// 1. 配置文件
Configuration
configuration
=
new
Configuration
();
configuration
.
setApiHost
(
"https://open.bigmodel.cn/"
);
configuration
.
setApiSecretKey
(
"4e087e4135306ef4a676f0cce3cee560.sgP2*****"
);
// 2. 会话工厂
OpenAiSessionFactory
factory
=
new
DefaultOpenAiSessionFactory
(
configuration
);
// 3. 开启会话
this
.
openAiSession
=
factory
.
openSession
();
}
/**
* 流式对话
*/
@Test
public
void
test_completions
()
throws
JsonProcessingException
,
InterruptedException
{
// 入参;模型、请求信息
ChatCompletionRequest
request
=
new
ChatCompletionRequest
();
request
.
setModel
(
Model
.
CHATGLM_LITE
);
// chatGLM_6b_SSE、chatglm_lite、chatglm_lite_32k、chatglm_std、chatglm_pro
request
.
setPrompt
(
new
ArrayList
<
ChatCompletionRequest
.
Prompt
>()
{
private
static
final
long
serialVersionUID
=
-
7988151926241837899L
;
{
add
(
ChatCompletionRequest
.
Prompt
.
builder
()
.
role
(
Role
.
user
.
getCode
())
.
content
(
"写个java冒泡排序"
)
.
build
());
}
});
// 请求
openAiSession
.
completions
(
request
,
new
EventSourceListener
()
{
@Override
public
void
onEvent
(
EventSource
eventSource
,
@Nullable
String
id
,
@Nullable
String
type
,
String
data
)
{
ChatCompletionResponse
response
=
JSON
.
parseObject
(
data
,
ChatCompletionResponse
.
class
);
log
.
info
(
"测试结果 onEvent:{}"
,
response
.
getData
());
// type 消息类型,add 增量,finish 结束,error 错误,interrupted 中断
if
(
EventType
.
finish
.
getCode
().
equals
(
type
))
{
ChatCompletionResponse
.
Meta
meta
=
JSON
.
parseObject
(
response
.
getMeta
(),
ChatCompletionResponse
.
Meta
.
class
);
log
.
info
(
"[输出结束] Tokens {}"
,
JSON
.
toJSONString
(
meta
));
}
}
@Override
public
void
onClosed
(
EventSource
eventSource
)
{
log
.
info
(
"对话完成"
);
}
});
// 等待
new
CountDownLatch
(
1
).
await
();
}
}
```
-
这是一个单元测试类,也是最常使用的流式对话模式。
## 接入
SpringBoot 配置类
```
java
@Configuration
@EnableConfigurationProperties
(
ChatGLMSDKConfigProperties
.
class
)
public
class
ChatGLMSDKConfig
{
@Bean
public
OpenAiSession
openAiSession
(
ChatGLMSDKConfigProperties
properties
)
{
// 1. 配置文件
cn
.
bugstack
.
chatglm
.
session
.
Configuration
configuration
=
new
cn
.
bugstack
.
chatglm
.
session
.
Configuration
();
configuration
.
setApiHost
(
properties
.
getApiHost
());
configuration
.
setApiSecretKey
(
properties
.
getApiSecretKey
());
// 2. 会话工厂
OpenAiSessionFactory
factory
=
new
DefaultOpenAiSessionFactory
(
configuration
);
// 3. 开启会话
return
factory
.
openSession
();
}
}
@Data
@ConfigurationProperties
(
prefix
=
"chatglm.sdk.config"
,
ignoreInvalidFields
=
true
)
public
class
ChatGLMSDKConfigProperties
{
/** 转发地址 */
private
String
apiHost
;
/** 可以申请 sk-*** */
private
String
apiSecretKey
;
}
```
yml 配置
```
pom
# ChatGLM SDK Config
chatgpt:
sdk:
config:
# 官网地址
api-host: https://open.bigmodel.cn/
# 官网申请 https://open.bigmodel.cn/usercenter/apikeys
api-key: 4e087e4135306ef4a676f0cce3cee560.sgP2DUs*****
```
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录