Skip to content

Commit

Permalink
📝
Browse files Browse the repository at this point in the history
  • Loading branch information
jiangyangcreate committed Nov 28, 2024
1 parent 3fd73e4 commit 65e52a3
Show file tree
Hide file tree
Showing 5 changed files with 83 additions and 77 deletions.
92 changes: 15 additions & 77 deletions docs/docs/云原生开发/接口认证.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
---
sidebar_position: 4
title: 接口认证
title: 接口开发
---

API(应用程序编程接口)是一组规则,用于定义应用程序或设备如何相互连接和通信。

最常用的是 REST API,它是一种使用 HTTP 请求访问和使用数据的技术
接口开发分为接口规范与技术实现

GraphQL 是一种新兴的 API 技术,它提供了一种更高效、强大和灵活的选择。

## REST
## 接口规范:REST API

REST API 是符合 REST(表述性状态转移)架构样式设计原则的 API。 因此,REST API 有时被称为 RESTful API。

Expand All @@ -26,7 +25,16 @@ EST API 几乎可以使用任何编程语言进行开发,并支持多种数据
> 任何特定时刻或时间戳的资源状态称为资源表示。 几乎可以采用任何格式将该信息传递到客户端,包括 JavaScript 对象表示法 (JSON)、HTML、XLT、Python、PHP 或纯文本。 JSON 非常受欢迎,因为它可以被人类和机器读取,而且与编程语言无关。
> 在 REST API 调用中,请求头和参数也很重要,因为它们包含重要的标识信息,例如元数据、授权、统一资源标识符 (URI)、缓存、cookie 等。 在精心设计的 REST API 中会使用请求头、响应头和常规 HTTP 状态码。
### 怎么使用 REST风格的API?
## 技术实现

目前后端开发常用的轻量接口框架有:

- flask
- FastAPI

如果需要开发一个复杂的业务接口,可以考虑Django。

### FastAPI

```python showLineNumbers
from fastapi import FastAPI
Expand All @@ -51,9 +59,9 @@ if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=6022)
```

### FastAPI示例
### flask

FastAPI 除了可以传输文本数据,还可传输图片、视频等数据,cv2 可以捕获屏幕,将两者结合起来,实现内网直播功能,可以在局域网内通过浏览器观看屏幕共享。
flask 除了可以传输文本数据,还可传输图片、视频等数据,cv2 可以捕获屏幕,将两者结合起来,实现内网直播功能,可以在局域网内通过浏览器观看屏幕共享。

```python showLineNumbers
import os
Expand Down Expand Up @@ -218,73 +226,3 @@ if __name__ == '__main__':
ip_host2 = '0.0.0.0'# 内网ip地址
app.run(threaded=True, host=ip_host2, port=80)
```

## Graphql

graphql 是一种用于 API 的查询语言,对你的 API 中的数据提供了一套易于理解的完整描述,使得客户端能够准确地获得它需要的数据,减少数据的冗余,系统中的所有入口点(REST、GraphQL 和 RPC)都将使用相同的验证、授权和错误处理规则进行处理。

GraphQL 同样支持 Relay, Django, SQLAlchemy, Google App Engine.

### 怎么使用 Graphql风格的API?

安装对应的模块

```bash showLineNumbers
pip install graphene
pip install strawberry-graphql
pip install ariadne
```

在 py 文件中可以运行这个简单的示例

```bash showLineNumbers
import graphene

class Query(graphene.ObjectType):
hello = graphene.String(name=graphene.String(default_value="World"))

def resolve_hello(self, info, name):
return 'Hello ' + name

schema = graphene.Schema(query=Query)
result = schema.execute('{ hello }')
print(result.data['hello']) # "Hello World"
```

### graphene示例

```python showLineNumbers
import graphene

# 定义 Person 类型
class Person(graphene.ObjectType):
id = graphene.ID()
name = graphene.String()
age = graphene.Int()

# 定义查询类型
class Query(graphene.ObjectType):
# 定义查询字段,用于获取所有人的信息
all_people = graphene.List(Person)

# 实现查询字段的解析器
def resolve_all_people(self, info):
# 在这个简单的例子中,我们返回一个包含一些硬编码数据的人员列表
return [
Person(id=1, name="John Doe", age=30),
Person(id=2, name="Jane Smith", age=25),
Person(id=3, name="Bob Johnson", age=35),
]

# 创建 schema,将 Query 类型添加到根 schema 中
schema = graphene.Schema(query=Query)

# 通过 GraphQL 查询获取结果
query_string = '{ allPeople { id name age } }'
result = schema.execute(query_string)

# 打印结果
print(result.data)
# {'allPeople': [{'id': '1', 'name': 'John Doe', 'age': 30}, {'id': '2', 'name': 'Jane Smith', 'age': 25}, {'id': '3', 'name': 'Bob Johnson', 'age': 35}]}
```

12 changes: 12 additions & 0 deletions docs/docs/机器学习/大语言模型部署/Agent智能体.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
sidebar_position: 3
title: 🚧Agent智能体
---

## 低代码

扣子

## 纯代码

Langchian
9 changes: 9 additions & 0 deletions docs/docs/机器学习/大语言模型部署/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
sidebar_position: 4
title: 🚧大语言模型部署
---

-


<DocCardList />
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
sidebar_position: 1
title: 🚧大语言模型获取
---

## 开源社区

社区具有明显的马太效应,即头部效应明显,头部模型拥有最多的资源,最新的技术,最多的用户。这里列举两个在国内外有一定影响力的社区。

### Hugging Face

### 魔搭社区(阿里达摩院)

## 商用接口

商业接口非常多,各有千秋,且更新迭代非常快。这里列举一个国内的接口与一个国外的接口用作示例。

### 百度

### OpenAI

Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---
sidebar_position: 1
title: 🚧模型微调与部署
---

## 模型微调

### LLaMA-Factory

## 提示词工程

### Prompt Engineering Guide

## 模型部署

### ollma

吃内存提供高并发

### vllma

吃显存提供低延迟

### llama-cpp-python

通过C重写并量化,解决了模型太大,无法加载的问题。

0 comments on commit 65e52a3

Please sign in to comment.