|
需要先启动本地ollama
llm@ii:~$ ./bin/ollama.sh
llm@ii:~$ ollama list
from tpf.llm import MyChat
chat = MyChat(env_file="env.txt")
query = "你好,讲个笑话"
res = chat.ollama(prompt_user=query)
{'query': '你好,讲个笑话',
'result': '有一天,一只猫和一只狗在讨论谁更聪明。猫说:‘当然我更聪明,我会捉老鼠,还会在高处优雅地着陆。’狗反驳道:‘那又怎样?我每天都能准确无误地把报纸叼回来,还能在主人回家时热情迎接。’突然,一只鸟飞过来插话:‘你们都太自以为是了,我每天都能找到食物,还能飞翔在天空中,这才是真正的聪明!’猫和狗听了,互相看了看,然后一起说:‘好吧,你赢了,但我们还是更喜欢捉老鼠和叼报纸。’',
'thinking': ['用户希望听一个笑话。',
'需要选择一个适合的主题,动物之间的对话通常比较有趣。',
'考虑使用猫、狗和鸟这三个角色,因为它们都有各自的特点和互动可能。',
'设计一个轻松幽默的情节,突出每个角色的特长,同时制造一些有趣的对比和冲突。',
'确保笑话有开头、发展和结尾,让故事完整且引人发笑。']}
res = chat.ollama(prompt_user=query,temperature=1)
res = chat.ollama(prompt_user=query,model=["DeepSeek-R1-14B-Q8:latest","DeepSeek-R1-14B-F16:latest","DeepSeek-R1-32B-Q6:latest","DeepSeek-R1-32B-Q8:latest"])
query = "你好,讲个笑话"
res = chat.ollama(prompt_user=query,
model=["DeepSeek-R1-32B-Q8:latest","DeepSeek-R1-32B-Q6:latest","DeepSeek-R1-14B-F16:latest","DeepSeek-R1-14B-Q8:latest"],
temperature=1)
res
{'query': '你好,讲个笑话',
'result': '为什么电脑总是感冒?因为它窗户(Windows)太多! 😄',
'thinking': ['用户要求讲一个笑话。',
'需要选择一个适合的笑话,既有趣又不冒犯人。',
'考虑到技术相关的话题可能更贴近用户的兴趣,选择了一个关于电脑和Windows操作系统的笑话。',
'确保笑话简洁易懂,并带有合适的表情符号以增加亲和力。']}
prompt = "当前文件'.'的绝对路径是什么?"
response = chat.func_call(query=prompt,
model_list=["gpt-4o-mini","gpt-4o",'DeepSeek-R1-14B-Q8:latest','DeepSeek-R1-14B-F16:latest'],
func_index=3, answer_index=2 )
print(response)
answer_index
- 只能指定本地ollama模型
func_index
- 并没有限制
指定Ollama地址
prompt = "当前文件'.'的绝对路径是什么?"
response = chat.func_call(query=prompt,
model_list=["gpt-4o-mini","gpt-4o",'DeepSeek-R1-14B-Q8:latest','DeepSeek-R1-14B-F16:latest'],
func_index=3, answer_index=2,base_url='http://localhost:11434/v1/' )
print(response)
但本地模型能力没有线上模型强,不是每次都能给出正确的结果
```json
{
"query": "当前文件'.'的绝对路径是什么?",
"result": "/mnt/g/wks/aiwks/bigmodel/kejian/day03_func_call"
}
```
|
from tpf.llm import MyChat chat = MyChat(env_file="env.txt")
query="你好"
res = chat.deepseek(prompt_user=query)
res
{'query': '你好', 'result': '你好!有什么我可以帮助你的吗?', 'thinking': []}
设置本地模型后,可自动判断输入的模型是本地的还是线上的
chat.set_local_model(['DeepSeek-R1-14B-Q8:latest','DeepSeek-R1-14B-F16:latest'])
chat.get_local_model()
['DeepSeek-14B-Q8:latest',
'DeepSeek-R1-14B-Q8:latest',
'DeepSeek-R1-14B-F16:latest',
'DeepSeek-R1-14B-Q8:latest',
'DeepSeek-R1-14B-F16:latest']
query="讲个笑话"
res = chat.deepseek(prompt_user=query,
prompt_system=None,
models=['deepseek-chat', 'deepseek-reasoner'],
temperature=1,
return_json=True,)
res
{'query': '讲个笑话',
'result': '有一天,小明问老师:“老师,您知道为什么鱼不会说话吗?”老师摇摇头。小明笑着说:“因为它们都在水里,一开口就全是泡泡!”',
'thinking': ['1. 理解用户请求:用户希望听到一个幽默的笑话。',
'2. 回忆或构思一个简短、易懂且适合大众的笑话。',
'3. 选择了一个关于鱼和泡泡的经典笑话,因为它简单有趣且容易理解。',
'4. 检查笑话是否合适,确保没有冒犯性或敏感内容。',
'5. 将笑话格式化并准备输出。']}
query="讲个笑话"
res = chat.deepseek(prompt_user=query,temperature=0.5)
res
{'query': '讲个笑话',
'result': '有一天,小明问老师:“老师,为什么我们要学数学呢?”老师回答:“因为数学能让我们变得更聪明。”小明想了想说:“那为什么我们要学语文呢?”老师笑着说:“因为语文能让我们把数学题解释得更清楚。”',
'thinking': ['理解用户需求:用户希望听到一个笑话。',
'回忆或构思一个适合的笑话。',
'选择一个既幽默又适合广泛受众的笑话。',
'确保笑话内容健康、无冒犯性。',
'组织语言,简洁明了地表达笑话。']}
|
from tpf.llm import MyChat
chat = MyChat(env_file="env.txt")
prompt = "当前文件'.'的绝对路径是什么?"
res = chat.deepseek_func_call(query=prompt)
res
{'query': "当前文件'.'的绝对路径是什么?",
'result': '/mnt/g/wks/aiwks/bigmodel/kejian/day03_func_call',
'thinking': []}
prompt = "当前文件'.'的绝对路径是什么?"
res = chat.deepseek_func_call(query=prompt,
model_list=['deepseek-chat', 'deepseek-reasoner'],
func_index=0)
res
{'query': "当前文件'.'的绝对路径是什么?",
'result': '/mnt/g/wks/aiwks/bigmodel/kejian/day03_func_call',
'thinking': []}
----------------------------------------------------------------------------------------- |
from tpf.llm import MyChat chat = MyChat(env_file="env.txt") query="请介绍一些学习算法的方法与技巧" chat.openai(prompt_user=query)
学习算法的方法与技巧可以包括:
1. **理论学习**:
- 阅读经典算法和数据结构的教科书,如《算法导论》。
- 关注在线课程和讲座,获取视觉和听觉的学习体验。
2. **编码实践**:
- 在LeetCode、HackerRank等在线平台上解决算法问题,以提高编码能力。
- 参与编程比赛来挑战自我。
3. **项目应用**:
- 在实际项目中应用算法,解决具体问题,积累经验。
- 贡献开源项目,观察他人解决问题的方法。
4. **讨论与交流**:
- 参与算法相关的社区,如Reddit或GitHub上的讨论区。
- 加入或者组织读书会,与同伴交流学习体会。
5. **复盘与总结**:
- 定期总结自己的学习过程和心得,形成自己的学习笔记。
- 制作知识图或思维导图帮助记忆和理解。
6. **动手实现**:
- 自己实现经典算法,理解其背后的思想而不仅仅是使用现成的库。
- 持续进行代码优化,提高算法效率。
通过这些方法,可以有效提升自己在算法方面的能力。
query="你好"
chat.openai(prompt_user=query,
prompt_system=None,
models=['gpt-4o', 'o1-mini-2024-09-12'],
temperature=1,
return_json=True,)
{'query': '你好',
'result': '你好!请问有什么我可以帮助你的吗?',
'thinking': ['识别用户问候的意图。', '构建一个友好的问候回应。', '确保回应开放,以便用户继续提问。']}
|
from tpf.llm import MyChat chat = MyChat(env_file="env.txt") prompt = "当前文件'.'的绝对路径是什么?" chat.openai_func_call(query=prompt)
{'query': "当前文件'.'的绝对路径是什么?",
'result': '/mnt/g/wks/aiwks/bigmodel/kejian/day03_func_call',
'thinking': ["用户询问当前文件'.'的绝对路径。",
'调用了get_abs_path函数来获取文件的绝对路径。',
"函数返回了绝对路径'/mnt/g/wks/aiwks/bigmodel/kejian/day03_func_call'。"]}
prompt = "当前文件'.'的绝对路径是什么?"
res = chat.openai_func_call(query=prompt,
model_list=["gpt-4o-mini","gpt-4o",'DeepSeek-R1-14B-Q8:latest','DeepSeek-R1-14B-F16:latest'],
func_index=0)
print(res)
prompt = "当前文件'.'的绝对路径是什么?"
chat.openai_func_call(query=prompt,
model_list=["gpt-4o-mini","gpt-4o",'DeepSeek-R1-14B-Q8:latest','DeepSeek-R1-14B-F16:latest'],
func_index=0, answer_index=0)
prompt = "当前文件'.'的绝对路径是什么?"
chat.openai_func_call(query=prompt,
model_list=["gpt-4o-mini","gpt-4o",'DeepSeek-R1-14B-Q8:latest','DeepSeek-R1-14B-F16:latest'],
func_index=0, answer_index=2)
|
from tpf.llm import MyChat chat = MyChat(env_file="env.txt") prompt = "当前文件'.'的绝对路径是什么?" chat.tongyi_func_call(query=prompt)
{'query': "当前文件'.'的绝对路径是什么?",
'result': "当前文件'.'的绝对路径是/mnt/d/wks/aiwks/bigmodel/kejian/day03_func_call/mychat"}
|
from tpf.llm import MyChat chat = MyChat(env_file="env.txt") prompt = "当前文件'.'的绝对路径是什么?" chat.qianfan_func_call(query=prompt)
{'query': "当前文件'.'的绝对路径是什么?",
'result': '/mnt/d/wks/aiwks/bigmodel/kejian/day03_func_call/mychat',
'thinking': []}
|
pip install openai pip install python_dotenv |
|
|
|
|
from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv(filename="env.txt"))
openai最原始的API调用方法 from tpf.llm.openai import chat model_list = ["gpt-4o","o1-mini-2024-09-12","deepseek-r1"] res = chat(prompt, response_format="text", model=model_list[2]) print(res) deepseek-r1 671b对于中文的理解真是强悍到没边了... 但也真的是费token ollama 本地模型调用方法
from tpf.llm.ollama import chat_ollama
# DeepSeek-R1-14B-Q8:latest,DeepSeek-R1-14B-Q8:latest
res = chat_ollama(prompt,
response_format='text',
model='DeepSeek-R1-14B-F16:latest')
print(res)
函数调用方法,若没有提供问题对应的函数则会报错
from tpf.llm import FuncCall
fc = FuncCall()
response = fc.chat(query=prompt,
model_list=["gpt-4o-mini","gpt-4o",'DeepSeek-R1-14B-Q8:latest','DeepSeek-R1-14B-F16:latest'],
func_index=3, answer_index= 2 )
print(response)
本地与在线混合支持,若是本地模型则需要通过下面的方法注册一下,目前只支持本地ollama模型
Signature: fc.set_ollama_local_model(model_name)
Docstring: 添加本地ollama模型名称
|
|
本地ollama
启动Ollama
llm@ii:~$ which ollama
/wks/python/ollama_offline/bin/ollama
llm@ii:~$ ollama serve
llm@ii:~$ ollama list
NAME ID SIZE MODIFIED
DeepSeek-R1-32B-Q8:latest 584ac87d48be 34 GB 2 months ago
DeepSeek-R1-32B-Q6:latest 05dfbe0bbb66 26 GB 2 months ago
DeepSeek-R1-32B-Q4:latest 1323fb0c27f8 19 GB 2 months ago
DeepSeek-R1-14B-Q8:latest 4d3466debbb4 15 GB 2 months ago
DeepSeek-R1-14B-F16:latest 24b92b30ec3e 29 GB 2 months ago
from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv(filename="env.txt"))
from tpf.llm import chat
model_list = ["gpt-4o","o1-mini-2024-09-12","deepseek-r1","DeepSeek-R1-14B-Q8:latest"]
prompt = "你好"
res = chat(prompt_user=prompt, prompt_system=None, temperature=1,
model=model_list[3],
base_url='http://localhost:11434/v1/',api_key='key')
print(res)
你好!很高兴见到你,有什么我可以帮忙的吗?无论是学习、工作还是生活中的问题,都可以告诉我哦!😊
简化参数
from tpf.llm import chat
model_list = ["gpt-4o","o1-mini-2024-09-12","deepseek-r1","DeepSeek-R1-14B-Q8:latest"]
prompt = "你好"
res = chat(prompt_user=prompt, prompt_system=None, temperature=1,
model=model_list[3])
print(res)
|
from tpf.llm import MyChat chat = MyChat(env_file="env.txt") 本地ollama query = "你好,讲个笑话" res = chat.ollama(prompt_user=query,model=["DeepSeek-R1-14B-Q8:latest","DeepSeek-R1-14B-F16:latest","DeepSeek-R1-32B-Q6:latest","DeepSeek-R1-32B-Q8:latest"]) print(res) 你好!当然可以。这是一个简单的笑话: 为什么电脑去โรงพยาliteral?因为它感染了病毒! deepseek在线API
query = "你好,讲个笑话"
res = chat.deepseek(prompt_user=query)
res
{'query': '你好,讲个笑话',
'result': '有一天,小明问老师:“老师,为什么我们要学数学?”老师回答:“因为生活中处处都有数学啊!”小明想了想说:“那为什么我妈妈买菜从来不算账?”',
'thinking': ['用户请求讲一个笑话,需要选择一个适合的、轻松幽默的内容。',
'考虑到文化差异和普遍接受度,选择一个与学习相关且不涉及敏感话题的笑话。',
'构思一个关于数学学习的简单笑话,确保语言通俗易懂。',
'检查笑话是否可能冒犯特定群体(如家长、教师),确认无问题后输出。']}
openai
query = "你好,讲个笑话"
res = chat.openai(prompt_user=query,
prompt_system=None,
models=['gpt-4o', 'o1-mini-2024-09-12'],
temperature=1,
return_json=True,)
print(res)
{'query': '你好,讲个笑话',
'result': '为什么电脑会感冒?因为它总是打开了很多窗口!',
'thinking': ['确定用户请求类型为讲笑话。',
'尝试选择一个通俗易懂且轻松的笑话。',
'考虑用户可能希望快速得到一个有趣且容易理解的结果。']}
|
|
会对用户填写的Prompt做一个结果的json封装,除此之外无其他操作
def return_json1():
output_format = """
输出格式:json格式,包含在```json ```标记中,
1. query字段,string类型,其value为用户的问题
2. result字段,string类型,其value为最终回复结果
3. thinking字段,list类型,
3.1 列表元素为大模型的思考步骤,按思考顺序整理为list列表;
3.2 若无思考步骤,则列表为空
"""
return output_format
def deepseek(self, prompt_user,
prompt_system=None,
models=['deepseek-chat','deepseek-reasoner'],
temperature=1,
return_json=True):
"""
- models:默认使用model[0],使用时调整其顺序即可
- return_json:
输出格式:json格式,包含在```json ```标记中,
1. query字段,string类型,其value为用户的问题
2. result字段,string类型,其value为最终回复结果
3. thinking字段,list类型,
3.1 列表元素为大模型的思考步骤,按思考顺序整理为list列表;
3.2 若无思考步骤,则列表为空
"""
if return_json:
try:
json_str = tools.get_json_str(content)
json_dict = json.loads(json_str)
is_parse_ok = True
except Exception as e:
print(e)
is_parse_ok = False
if is_parse_ok:
return json_dict
-------------------------------------------------------------------------- --------- |
邮箱登录 https://devcto.com/app/account |
|
依赖包安装 pip install python-dotenv #读取文件中的环境变量 pip install openai 环境变量配置与加载:默认加载 .env 文件中的环境变量
from dotenv import load_dotenv
# 加载".env"文件
load_dotenv()
# 现在你可以通过os.getenv来获取环境变量了
import os
my_secret_key = os.getenv("MY_SECRET_KEY")
print(my_secret_key)
确保你的 .env 文件位于你的项目根目录或你指定的目录中, 并且包含了你需要的环境变量,如 MY_SECRET_KEY=some_secret_value。 加载指定的文件
from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv(filename="env.txt"))
|
from openai import OpenAI
# 初始化 OpenAI 客户端
client = OpenAI() # 默认使用环境变量中的 OPENAI_API_KEY 和 OPENAI_BASE_URL
# 基于 prompt 生成文本
# 默认使用 gpt-3.5-turbo 模型
def get_completion(prompt, response_format="text", model="gpt-3.5-turbo"):
messages = [{"role": "user", "content": prompt}] # 将 prompt 作为用户输入
response = client.chat.completions.create(
model=model,
messages=messages,
temperature=0, # 模型输出的随机性,0 表示随机性最小
# 返回消息的格式,text 或 json_object
response_format={"type": response_format},
)
return response.choices[0].message.content # 返回模型生成的文本
print(get_completion("常用的数据结构与算法有哪些"))
常用的数据结构包括: 1. 数组(Array) 2. 链表(Linked List) 3. 栈(Stack) 4. 队列(Queue) 5. 树(Tree) 6. 图(Graph) 7. 哈希表(Hash Table) 8. 堆(Heap) 常用的算法包括: 1. 排序算法(如快速排序、归并排序、插入排序、冒泡排序等) 2. 搜索算法(如二分查找、深度优先搜索、广度优先搜索等) 3. 动态规划(Dynamic Programming) 4. 贪心算法(Greedy Algorithm) 5. 回溯算法(Backtracking) 6. 分治算法(Divide and Conquer) 7. 图算法(如最短路径算法、最小生成树算法等) 8. 字符串匹配算法(如KMP算法、Boyer-Moore算法等) gpt-4o-mini
from openai import OpenAI
client = OpenAI()
stream = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "请使用C语言实现一个数组的数据结构"}],
stream=True,
)
for chunk in stream:
if chunk.choices[0].delta.content is not None:
print(chunk.choices[0].delta.content, end="")
当然可以!下面是一个简单的数组数据结构的实现示例,包括基本的功能,如初始化、插入元素、删除元素和打印数组内容。
```c
#include stdio.h
#include stdlib.h
#define MAX_SIZE 100 // 定义数组的最大容量
typedef struct {
int *data; // 动态分配的数组
int size; // 当前数组大小
int capacity; // 数组的最大容量
} Array;
// 初始化数组
Array* createArray(int capacity) {
Array *arr = (Array*)malloc(sizeof(Array));
arr->capacity = capacity;
arr->size = 0;
arr->data = (int*)malloc(capacity * sizeof(int));
return arr;
}
// 插入元素
void insert(Array *arr, int element) {
if (arr->size < arr->capacity) {
arr->data[arr->size++] = element;
} else {
printf("数组已满,无法插入元素 %d\n", element);
}
}
// 删除元素
void delete(Array *arr, int index) {
if (index >= 0 && index < arr->size) {
for (int i = index; i < arr->size - 1; i++) {
arr->data[i] = arr->data[i + 1];
}
arr->size--;
} else {
printf("索引越界,无法删除元素\n");
}
}
// 打印数组
void printArray(Array *arr) {
printf("数组元素: ");
for (int i = 0; i < arr->size; i++) {
printf("%d ", arr->data[i]);
}
printf("\n");
}
// 释放数组
void freeArray(Array *arr) {
free(arr->data);
free(arr);
}
int main() {
Array *arr = createArray(MAX_SIZE);
insert(arr, 10);
insert(arr, 20);
insert(arr, 30);
printArray(arr);
delete(arr, 1); // 删除索引为1的元素
printArray(arr);
freeArray(arr);
return 0;
}
```
### 说明:
1. **数据结构**:
- `Array` 结构体包含指向动态分配内存的指针、当前数组大小和数组最大容量。
2. **功能**:
- `createArray`:初始化数组。
- `insert`:在数组末尾插入元素。
- `delete`:根据索引删除元素。
- `printArray`:打印数组内容。
- `freeArray`:释放申请的内存。
3. **主函数**:
- 创建一个数组,插入一些元素,展示数组内容,删除一个元素,最后输出更新后的数组并释放内存。
你可以运行这个代码并根据需要进行修改或扩展。
|
|
流式调用
from openai import OpenAI
client = OpenAI()
stream = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "请使用C语言实现一个数组的数据结构"}],
stream=True,
)
for chunk in stream:
if chunk.choices[0].delta.content is not None:
print(chunk.choices[0].delta.content, end="")
|
from openai import OpenAI
def get_completion(prompt, model="gpt-3.5-turbo-1106"):
'''封装 openai 接口'''
messages = [{"role": "user", "content": prompt}]
client = OpenAI()
response = client.chat.completions.create(
model=model,
messages=messages,
temperature=0.9, # 模型输出的随机性,0 表示随机性最小
)
return response.choices[0].message.content
prompt = """
我是七三学徒,热爱新技术,对AI有浓厚的兴趣,
请问七三学徒是谁?
"""
get_completion(prompt)
'七三学徒通常指受过严格训练的学徒,以“七分师傅,三分学徒”来形容。这个成语源自中国古代,形容学徒在师傅的指导下学习技艺。'
```temperature=0
'七三学徒通常指的是中国著名科学家、工程师和教育家钱学森。他被称为“七三学徒”是因为他在1937年以73岁高龄获得了加拿大麦吉尔大学的博士学位。钱学森是中国现代航空航天事业的奠基人之一,也是中国的科学家和教育家。'
```
prompt = """ 七三学徒是一个热爱新技术,对AI有浓厚的兴趣的人 请问七三学徒是谁? """ get_completion(prompt) '七三学徒是一个虚构的人物,通常用来形容对新技术和人工智能有浓厚兴趣的人。' |
|
system role
from openai import OpenAI
from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv())
client = OpenAI(
)
# 消息
messages = [
{
"role": "system",
"content": "我是七三学徒,热爱新技术,对AI有浓厚的兴趣" # 注入新知识
},
{
"role": "user",
"content": "请问七三学徒是谁?" # 问问题。可以改改试试
},
]
# 调用 GPT-3.5
chat_completion = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=messages
)
# 输出回复
print(chat_completion.choices[0].message.content)
七三学徒是一个虚拟角色,代表一个热爱学习、积极探索新知识的学习者。 在这里,我作为七三学徒角色与您交流,分享知识,解答问题。 欢迎提出您感兴趣的问题,让我们一起探讨学习、科技和其他话题! 结合前面的例子,可以充分体会 system role这个角色 这个是指定系统是个什么角色, 这里呢,在体系里说的是“我”,LLM折中处理了这个过程... 这么难回答的一个问题,使用user role,结果就会大不相同
from openai import OpenAI
from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv())
client = OpenAI(
)
# 消息
messages = [
{
"role": "user",
"content": "我是七三学徒,热爱新技术,对AI有浓厚的兴趣" # 注入新知识
},
{
"role": "user",
"content": "请问七三学徒是谁?" # 问问题。可以改改试试
},
]
# 调用 GPT-3.5
chat_completion = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=messages
)
# 输出回复
print(chat_completion.choices[0].message.content)
“七三学徒”是一个由网络上的一个匿名程序员所使用的ID或网名,通常在技术相关的讨论或社交平台上被使用。他(或她)可能以此来表达对自己在技术领域中仍需学习和成长的态度。在网上,大家可能更熟悉他使用的这个ID,而不是他的真名。
from openai import OpenAI
from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv())
client = OpenAI(
)
# 消息
messages = [
{
"role": "system",
"content": "七三笔记网站是一个介绍AI相关知识的网站" # 注入新知识
},
{
"role": "user",
"content": "七三笔记网站是做什么?" # 问问题。可以改改试试
},
]
# 调用 GPT-3.5
chat_completion = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=messages
)
# 输出回复
print(chat_completion.choices[0].message.content)
七三笔记网站是一个介绍人工智能(AI)相关知识的网站,提供关于人工智能技术、应用、发展等方面的文章、教程和资讯。用户可以在网站上学习人工智能的基础知识,了解最新的人工智能技术趋势,以及探讨人工智能在各个领域的应用和发展。 |
通过验证码登录 https://devcto.com/app/account |
|
|
from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv())
from langchain_openai import OpenAI
llm = OpenAI()
prompt = """
我是七三学徒,热爱新技术,对AI有浓厚的兴趣,
请问七三学徒是谁?
"""
response = llm.invoke(prompt)
print(response)
执行的结果是有一定随机性的,尤其是这样LLM无法准确理解的问题
七三学徒不是一个具体的人,而是一个身份。一般指在某个领域或技术上只有初步了解的学习者,处于初级阶段的学习者。这个称呼源自中国古代的经典《论语》中的一句话:“七十而从心所欲,不逾矩”,意思是说人到70岁时,应该能够按照自己的意愿去做事,但也不要超过规矩。后来民间就用“七十从心所欲”来形容初学者,后来又简称为“七三学徒”。
七三学徒是一个网络用戶名,代表一个人的匿名身份,无法确定具体是哪个人
七三学徒是一个网络上的虚拟角色,代表着一个热爱新技术、对人工智能有浓厚兴趣的普通人。他/她并没有具体的身份和真实的存在,只是一种社交媒体上的身份标识。
|
|
|
|
|
|
|
|
from langchain_community.callbacks import get_openai_callback
from langchain_openai import OpenAI
# 初始化
from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv())
llm = OpenAI()
with中可以是llm直接调用,也可以是chain调用
with get_openai_callback() as cb:
res = llm.invoke("如何培养持久学习的习惯?")
print(res)
1. 设定明确的学习目标:首先,要明确自己想要学习什么内容,设定明确的学习目标,这样可以让学习更有针对性和方向性。
2. 制定学习计划:制定一个学习计划,将学习内容分解成小目标,每天或每周规划学习的时间和内容,这样可以让学习变得更有条理,避免拖延和浪费时间。
3. 坚持每天学习:持久学习的关键是每天都要保持学习的习惯,可以设定固定的学习时间,保证每天都有一定的学习时间。
4. 找到适合自己的学习方式:每个人的学习方式都不同,有的人喜欢看书,有的人喜欢听课,
print(cb)
Tokens Used: 274
Prompt Tokens: 18
Completion Tokens: 256
Successful Requests: 1
Total Cost (USD): $0.000539
|
|
|
|
|
|
|
|