# sy-chat-sdk
**Repository Path**: a-little-zhu/sy-chat-sdk
## Basic Information
- **Project Name**: sy-chat-sdk
- **Description**: 一行调用ollama大模型,与AI对话
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 3
- **Forks**: 1
- **Created**: 2024-09-20
- **Last Updated**: 2024-10-27
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# SyChat SDK
## 概述
SyChat SDK 是一个高性能、可扩展的聊天机器人开发工具包,旨在简化与聊天模型的集成。通过提供简洁的API和灵活的配置选项,开发者可以轻松地构建和部署智能聊天应用。
## 特性
- **高性能**:基于Spring Boot,提供快速响应和高并发处理能力。
- **灵活配置**:支持通过`application.properties`或`application.yml`文件进行配置,满足不同环境的需求。
- **易于集成**:提供简单易用的API,支持快速集成到现有项目中。
- **扩展性强**:支持自定义消息处理逻辑和模型配置,满足复杂业务需求。
- **支持ApiKeyPool**: 支持多个ApiKey,提高请求成功率。(0.0.5+)
- **负载均衡**: 支持负载均衡,随机选择一个ApiKey进行请求。(0.0.5+)
- **支持记忆**: 本地存储聊天历史,token超出限制自动删减上下文(0.0.5+)
## 快速开始
### 环境要求
- JDK 8或更高版本
- Maven 3.6.0或更高版本
- SpringBoot 2.X 版本
### 配置
1. 在`pom.xml`文件中添加以下依赖:
- `0.0.6`版本已同步maven中央镜像,拉取到阿里云镜像可能会有延迟。
```xml
io.gitee.a-little-zhu
sy-chat-sdk
0.0.5
```
- `0.0.3`版本如下:
```xml
io.gitee.a-little-zhu
sy-chat-sdk
0.0.3
```
2. 在`src/main/resources/application.properties`文件中配置以下属性:
- `>0.0.5`版本配置:
```yaml
sy:
chat:
api-keys:
- 'YBHTRrFtcl0aJOFBPDgpebYwxXWcJGRUplm1PVMeCULc'
base-url: 'https://ollama.yamazing.cn/v1/chat/completions'
model: 'llama3-8b-8192'
max-tokens: 4096
stream: false
```
`<0.0.5`版本配置:
```yaml
sy:
chat:
api-key: 'YBHTRrFtcl0aJOFBPDgpebYwxXWcJGRUplm1PVMeCULc'
base-url: 'https://ollama.yamazing.cn/v1/chat/completions'
model: 'llama3-8b-8192'
max-tokens: 4096
stream: false
```
3. 在项目启动类中添加`@EnableConfigurationProperties`注解:
```java
@EnableConfigurationProperties(SyChatProperties.class)// 扫描读取yaml配置
```
- 例如
```java
@EnableConfigurationProperties(SyChatProperties.class)
@SpringBootApplication
public class ApiSdkApplication {
public static void main(String[] args) {
SpringApplication.run(ApiSdkApplication.class, args);
}
}
```
4. 如果需要本地部署此SDK作二次开发,请自行添加application.yml文件,并补充相关模型配置。
### 使用示例
```java
/**
* @author: wsy
*/
@RestController
@RequestMapping("/sdk")
public class SdkController {
@Resource
private SyChatProperties syChatProperties;
@GetMapping("/chat")
public void chat(HttpServletResponse response,String msg) throws Exception {
SyClient client = new SyClient(syChatProperties);
String s = client.chat(msg);
System.out.println(response);
response.setCharacterEncoding("UTF-8");
response.setContentType("text/plain;charset=UTF-8");
response.getWriter().write(s);
}
}
```
- 访问端口: `http://:/sdk/chat?msg=中文回答,现在入行Java咋样?`
#### 注意事项
- 因为逆向的是ollama模型,默认回复为英文,如果需要模型回复中文,需要指定语言,如上所示。
## 高级配置
### 自定义消息处理
您可以通过扩展`SyClient`类来自定义消息处理逻辑,以满足特定业务需求。
### 多环境支持
通过在`settings.xml`中配置Maven Profile,支持多环境配置:
```xml
dev
env
dev
https://dev.api.yourchatmodel.com
prod
env
prod
https://api.yourchatmodel.com
```
## 贡献
欢迎提交Issue和Pull Request来帮助我们改进SyChat SDK。请确保在提交之前阅读我们的[贡献指南](CONTRIBUTING.md)。
## 许可证
本项目采用MIT许可证,详情请参阅[LICENSE](LICENSE)文件。