大语言模型
大语言模型在 AIFlowy 中(严格意义上是在 AgentsFlex 中)是通过 Llm.java 来定义的。Llm.java 用于定义和描述了大语言模型的基本能力。
Llm 针对不同的大语言模型又会有不同的实现类,比如:
- OpenAiLlm 用于对 ChatGPT 的封装
- LlamaLlm 用于对 Llama 的封装
- ChatglmLlm 用于对智谱 AI 的封装
- SparkLlm 用于对星火大模型的封装
- QwenLlm 用于对阿里云通义千问的封装
示例代码
基本对话
java
OpenAiLlmConfig config = new OpenAiLlmConfig();
config.setApiKey("sk-rts5NF6n*******");
Llm llm = new OpenAiLlm(config);
String response = llm.chat("请问你叫什么名字");
System.out.println(response);
Embedding
java
Llm llm = OpenAiLlm.of("sk-rts5NF6n*******");
VectorData embeddings = llm.embed(Document.of("some document text"));
System.out.println(Arrays.toString(embeddings.getVector()));
Function Calling
java
OpenAiLlmConfig config = new OpenAiLlmConfig();
config.setApiKey("sk-rts5NF6n*******");
OpenAiLlm llm = new OpenAiLlm(config);
FunctionPrompt prompt = new FunctionPrompt("今天北京的天气怎么样", WeatherFunctions.class);
FunctionMessageResponse response = llm.chat(prompt);
Object result = response.invoke();
System.out.println(result);
// "Today it will be dull and overcast in 北京"