v0.0.3
- token
This commit is contained in:
parent
61d8ad319b
commit
5db04c3c05
11
README.md
11
README.md
@ -1,6 +1,6 @@
|
||||
# LangChain Learning
|
||||
|
||||
[](https://github.com/your-repo/langchain-learning)
|
||||
[](https://github.com/your-repo/langchain-learning)
|
||||
[](https://www.python.org/)
|
||||
[](https://www.langchain.com/)
|
||||
|
||||
@ -11,6 +11,7 @@
|
||||
- **多 LLM 集成**:支持 OpenAI API、SiliconFlow 及 LangChain 抽象层
|
||||
- **流式响应**:实时流式输出,带来更好的使用体验
|
||||
- **Prompt 工程**:多种 Prompt 模板构建方式
|
||||
- **Token 用量追踪**:轻松监控 API 调用消耗
|
||||
- **实战示例**:从基础到进阶的使用模式
|
||||
|
||||
## 快速开始
|
||||
@ -49,6 +50,12 @@ SILICONFLOW_BASE_URL=https://api.siliconflow.cn/v1
|
||||
| Few-shot Learning | `python prompt/fewshot_demo.py` | 带示例的少样本提示学习 |
|
||||
| 从文件加载 Prompt | `python prompt/promt_from_file.py` | 从 YAML 文件加载提示词模板 |
|
||||
|
||||
**Token 用量示例**
|
||||
|
||||
| 示例 | 命令 | 说明 |
|
||||
|------|------|------|
|
||||
| Token 追踪 | `python token/token_demo.py` | 使用 get_openai_callback 追踪 token 消耗 |
|
||||
|
||||
## 项目结构
|
||||
|
||||
```
|
||||
@ -63,6 +70,8 @@ langchain-learning/
|
||||
│ ├── fewshot_demo.py # Few-shot Learning 示例
|
||||
│ ├── promt_from_file.py # 从文件加载 Prompt
|
||||
│ └── prompt_from_file.yaml # Prompt 模板文件
|
||||
├── token/
|
||||
│ └── token_demo.py # Token 用量追踪示例
|
||||
├── main.py # 入口文件
|
||||
├── pyproject.toml # 项目配置
|
||||
└── README.md
|
||||
|
||||
27
token/token_demo.py
Normal file
27
token/token_demo.py
Normal file
@ -0,0 +1,27 @@
|
||||
|
||||
from langchain_community.callbacks import get_openai_callback
|
||||
from langchain_core.prompts import FewShotChatMessagePromptTemplate, PromptTemplate
|
||||
from langchain_openai import ChatOpenAI
|
||||
import os
|
||||
import dotenv
|
||||
|
||||
dotenv.load_dotenv()
|
||||
|
||||
## 设置环境变量
|
||||
os.environ['OPENAI_API_KEY'] = os.getenv("SILICONFLOW_API_KEY")
|
||||
os.environ['OPENAI_BASE_URL'] = os.getenv("SILICONFLOW_BASE_URL")
|
||||
|
||||
# 默认的 'model_name': 'deepseek-ai/DeepSeek-V3.1',
|
||||
llm = ChatOpenAI(model="deepseek-ai/DeepSeek-R1-0528-Qwen3-8B")
|
||||
template = PromptTemplate.from_template("给我讲一个关于{topic}的冷笑话")
|
||||
chain = template | llm
|
||||
|
||||
with get_openai_callback() as cb:
|
||||
response = chain.invoke({"topic":"特朗普"})
|
||||
print(response)
|
||||
|
||||
print("------")
|
||||
print(f"total_tokens:{cb.total_tokens}")
|
||||
print(f"prompt_tokens :{cb.prompt_tokens}")
|
||||
print(f"completion_tokens:{cb.completion_tokens}")
|
||||
print(f"total_cost:{cb.total_cost}")
|
||||
Loading…
Reference in New Issue
Block a user