v0.0.4
parser
This commit is contained in:
parent
5db04c3c05
commit
10a6a7051a
11
README.md
11
README.md
@ -1,6 +1,6 @@
|
|||||||
# LangChain Learning
|
# LangChain Learning
|
||||||
|
|
||||||
[](https://github.com/your-repo/langchain-learning)
|
[](https://github.com/your-repo/langchain-learning)
|
||||||
[](https://www.python.org/)
|
[](https://www.python.org/)
|
||||||
[](https://www.langchain.com/)
|
[](https://www.langchain.com/)
|
||||||
|
|
||||||
@ -11,6 +11,7 @@
|
|||||||
- **多 LLM 集成**:支持 OpenAI API、SiliconFlow 及 LangChain 抽象层
|
- **多 LLM 集成**:支持 OpenAI API、SiliconFlow 及 LangChain 抽象层
|
||||||
- **流式响应**:实时流式输出,带来更好的使用体验
|
- **流式响应**:实时流式输出,带来更好的使用体验
|
||||||
- **Prompt 工程**:多种 Prompt 模板构建方式
|
- **Prompt 工程**:多种 Prompt 模板构建方式
|
||||||
|
- **输出解析**:支持 JSON 等格式解析
|
||||||
- **Token 用量追踪**:轻松监控 API 调用消耗
|
- **Token 用量追踪**:轻松监控 API 调用消耗
|
||||||
- **实战示例**:从基础到进阶的使用模式
|
- **实战示例**:从基础到进阶的使用模式
|
||||||
|
|
||||||
@ -50,6 +51,12 @@ SILICONFLOW_BASE_URL=https://api.siliconflow.cn/v1
|
|||||||
| Few-shot Learning | `python prompt/fewshot_demo.py` | 带示例的少样本提示学习 |
|
| Few-shot Learning | `python prompt/fewshot_demo.py` | 带示例的少样本提示学习 |
|
||||||
| 从文件加载 Prompt | `python prompt/promt_from_file.py` | 从 YAML 文件加载提示词模板 |
|
| 从文件加载 Prompt | `python prompt/promt_from_file.py` | 从 YAML 文件加载提示词模板 |
|
||||||
|
|
||||||
|
**输出解析示例**
|
||||||
|
|
||||||
|
| 示例 | 命令 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| JSON 解析器 | `python parser/json_parser_demo.py` | 使用 JsonOutputParser 解析 LLM 输出 |
|
||||||
|
|
||||||
**Token 用量示例**
|
**Token 用量示例**
|
||||||
|
|
||||||
| 示例 | 命令 | 说明 |
|
| 示例 | 命令 | 说明 |
|
||||||
@ -70,6 +77,8 @@ langchain-learning/
|
|||||||
│ ├── fewshot_demo.py # Few-shot Learning 示例
|
│ ├── fewshot_demo.py # Few-shot Learning 示例
|
||||||
│ ├── promt_from_file.py # 从文件加载 Prompt
|
│ ├── promt_from_file.py # 从文件加载 Prompt
|
||||||
│ └── prompt_from_file.yaml # Prompt 模板文件
|
│ └── prompt_from_file.yaml # Prompt 模板文件
|
||||||
|
├── parser/
|
||||||
|
│ └── json_parser_demo.py # JSON 输出解析示例
|
||||||
├── token/
|
├── token/
|
||||||
│ └── token_demo.py # Token 用量追踪示例
|
│ └── token_demo.py # Token 用量追踪示例
|
||||||
├── main.py # 入口文件
|
├── main.py # 入口文件
|
||||||
|
|||||||
38
parser/json_parser_demo.py
Normal file
38
parser/json_parser_demo.py
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
import logging
|
||||||
|
|
||||||
|
from langchain_core.output_parsers import JsonOutputParser
|
||||||
|
from langchain_core.prompts import PromptTemplate
|
||||||
|
from langchain_openai import ChatOpenAI
|
||||||
|
import os
|
||||||
|
import dotenv
|
||||||
|
|
||||||
|
logging.basicConfig(
|
||||||
|
level=logging.DEBUG,
|
||||||
|
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s"
|
||||||
|
)
|
||||||
|
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")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
output_parser = JsonOutputParser()
|
||||||
|
print(output_parser.get_format_instructions())
|
||||||
|
|
||||||
|
message = "讲一个简短的笑话"
|
||||||
|
prompt = PromptTemplate(
|
||||||
|
template="用中文回答用户的请求。\n{format_instruction}\n{query}",
|
||||||
|
input_variables = ["query"],
|
||||||
|
partial_variables={"format_instruction":output_parser.get_format_instructions()}
|
||||||
|
)
|
||||||
|
|
||||||
|
chain = prompt | llm | output_parser
|
||||||
|
|
||||||
|
response = chain.invoke({"query":message})
|
||||||
|
print(response)
|
||||||
|
print(type(response))
|
||||||
Loading…
Reference in New Issue
Block a user